skywalking VS prometheus-cpp

Compare skywalking vs prometheus-cpp and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
skywalking prometheus-cpp
23 4
23,269 870
1.0% -
9.5 8.0
3 days ago about 1 month ago
Java C++
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

skywalking

Posts with mentions or reviews of skywalking. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-02.
  • Show HN: OneUptime – open-source Datadog Alternative
    7 projects | news.ycombinator.com | 2 Apr 2024
  • Enhancing API Observability Series (Part 3): Tracing
    3 projects | dev.to | 19 Mar 2024
    When choosing distributed tracing tools, considerations include your technology stack, business requirements, and monitoring complexity. Zipkin, SkyWalking, and OpenTelemetry are popular distributed tracing solutions, each with its unique features.
  • Five Apache projects you probably didn't know about
    8 projects | dev.to | 21 Dec 2023
    Apache SkyWalking is an APM tool, focusing on microservices, Cloud Native apps, and Kuernetes architectures. It builds its architecture on four kinds of components:
  • Show HN: Monitor your webapp with minimal setup
    7 projects | news.ycombinator.com | 20 Nov 2023
  • It's time to let go, Apache Software Foundation
    8 projects | news.ycombinator.com | 25 Sep 2023
    Trying to play devil's advocate here.

    > It needs at least a stable set of users, but maintaining a set of users is essentially managing the set of people onboarding and the set of people migrating off.

    I could say that I don't care very much about how much users a piece of software has, only that it has enough information on how to use it and enough maintainers to patch any security vulnerabilities and do occasional releases with updated dependencies, as well as address any serious issues or bugs.

    For example, Apache Skywalking is an APM solution that most people haven't even heard of (in contrast to something like Sentry), yet it fits those qualities and I see few to no issues with it: https://skywalking.apache.org/

    > If you're shrinking then a competitor is providing better options, or your problem space has shifted.

    Again, as a user, I might not care that Sentry or another piece of software is better in any number of ways than Apache Skywalking. Similarly, I might not care that something like PostgreSQL is more correct or has a large market share (at least on HN) in comparison to something like MariaDB/MySQL.

    If a piece of software meets the needs of my project and won't effectively rot with time, then it's quite possibly good enough as it is, even if it's not the market leader. For my small project's APM needs Apache Skywalking is enough. For my CRUD database needs, something like MariaDB/MySQL will be okay until the time Sun burns out (or PostgreSQL if I'm feeling fancy, but even that's not one of the modern and hip solutions).

    Ergo, those better options only become relevant once they're closer to being must haves than nice to haves. Same as how Docker Swarm might be enough for many, even if Kubernetes basically won in the "container wars" and has a way more active community. Swarm will only stop being an option for me once it hits EOL, at least for certain projects where simplicity is appreciated.

    Then again, a counterpoint to my own argument here could be the story of LibreOffice and OpenOffice, where the latter was basically donated (instead of the rights to the name being given to the folks behind LibreOffice) and is now in decline while LibreOffice is flourishing - but at the same time they were so close to one another feature wise, that maybe it's not a good point, same as with Gogs and Gitea.

  • JDK 21 Release Notes
    6 projects | news.ycombinator.com | 19 Sep 2023
    > Where's Java primarily used these days?

    I've seen a lot of enterprise-y webdev projects use it for back end stuff (Dropwizard, Spring Boot, Vert.X, Quarkus) and in rare cases even front end (like Vaadin or JSF/PrimeFaces). The IDEs are pretty great, especially the ones by JetBrains, the tooling is pretty mature and boring, the performance is really good (memory usage aside) and the language itself is... okay.

    Curiously, I wanted to run my own server for OIDC/OAuth2 authn/authz and to have common features like registration, password resets and social login available to me out of the box, for which I chose Keycloak: https://www.keycloak.org/

    Surprise surprise, it's running Java under the hood. I wanted to integrate some of my services with their admin API, seems like the Java library is also updated pretty frequently: https://mvnrepository.com/artifact/org.keycloak/keycloak-adm... whereas ones I found for .NET feel like they're stagnating more: https://www.nuget.org/packages?q=keycloak (probably not a dealbreaker, though)

    Then, I wanted to run an APM stack with Apache Skywalking (simpler to self-host than Sentry), which also turns out to be a Java app under the hood: https://skywalking.apache.org/

    Also you occasionally see like bank auth libraries or e-signing libraries be offered in Java as well first and foremost, at least in my country (maybe PHP sometimes): https://www.eparaksts.lv/en/for_developers/Java_libraries and their app for getting certificates from the government issued eID cards also runs off of Java.

    So while Java isn't exactly "hot" tech, it's used all over the place: even in some game engines, like jMonkeyEngine, or in infrastructure code where something like Go might actually be more comfortable to use.

  • OpenTelemetry in 2023
    36 projects | news.ycombinator.com | 28 Aug 2023
    > What should people use?

    I recall Apache Skywalking being pretty good, especially for smaller/medium scale projects: https://skywalking.apache.org/

    The architecture is simple, the performance is adequate, it doesn't make you spend days configuring it and it even supports various different data stores: https://skywalking.apache.org/docs/main/v9.0.0/en/setup/back...

    The problems with it are that it isn't super popular (although has agents for most popular stacks), the docs could be slightly better and I recall them also working on a new UI so there is a little bit of churn: https://skywalking.apache.org/downloads/

    Still better versus some of the other options when you need something that just works instead of spending a lot of time configuring something (even when that something might be superior in regards to the features): https://github.com/getsentry/self-hosted/blob/master/docker-...

    Sentry is just the first thing that comes to mind (OpenTelemetry also isn't simpler due to how much it tries to do), but compare its complexity to Skywalking: https://github.com/apache/skywalking/blob/master/docker/dock...

    I wish there was more self-hosted software like that out there, enough to address certain concerns in a simple way on day 1 and leave branching out to more complex options like OpenTelemetry once you have a separate team for that and the cash is rolling in.

  • Apache Skywalking Application performance monitor tool for distributed systems
    1 project | news.ycombinator.com | 10 May 2023
  • Improving Observability of Go Services
    2 projects | /r/golang | 3 Feb 2023
  • Monitoring Microservices with Prometheus and Grafana
    9 projects | news.ycombinator.com | 9 Dec 2022
    Personally I've also used Apache Skywalking for a decent out of the box experience: https://skywalking.apache.org/

    I've also heard good things about Sentry, though if you need to self-host it, then there's a bit of complexity to deal with: https://sentry.io/welcome/

prometheus-cpp

Posts with mentions or reviews of prometheus-cpp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-21.
  • C++ Concurrency Model on x86 for Dummies
    5 projects | news.ycombinator.com | 21 Aug 2022
    Rust does have some very cool mechanisms for safety, including in the presence of concurrency.

    But this thread is generating blowback from someone saying: “slow down there with the hand-rolled atomic operations, you can hand-roll your multi-threaded locking strategy and it’ll be way safer at a modest cost!”

    So, probably not the target audience for Rust ;)

    I use a lot of C++ still because there are libraries I want and I have a significant investment in existing code, but I’d love to get to something more modern.

    Hand-rolled atomics and load/store relaxation in application code make even seasoned C++ hackers a bit nervous: we saw this shit from business logic hackers at FB all the time and my colleague coined the term “aggressively intermediate” for the style.

    I don’t mean to pick on the author of a quite good library (and it is quite good), but I ran across this the other day:

    https://github.com/jupp0r/prometheus-cpp/blob/master/core/sr...

    It’s correct (I think, very easy to be wrong about this sort of thing), but what are we measuring here where we can’t delegate that CAS into pthread? Branch mispredictions?

    Either threads are fighting over whatever cache line that’s on (exclusive -> invalid -> exclusive -> invalid), or not. If they are, I’ve just deprived the scheduler of the opportunity to wake me up when the other 59 threads are done. If they’re not, I’ve maybe saved like one line in my L1.

    And in something like a metrics library, you could be wrong for a very long time before someone pinned it down.

  • Debugging/optimizing/diagnostic tools for C++
    2 projects | /r/cpp | 25 Apr 2022
    Some metric collecting tool, for example, Prometheus and its client library for C++
  • Data Telemetry for Application Monitoring
    2 projects | /r/QtFramework | 10 Sep 2021
    You can use https://github.com/jupp0r/prometheus-cpp (your custom data) in combination with https://grafana.com/ that has plugins for things like cpu usage.
  • Dashboard for my C++ application
    1 project | /r/cpp | 31 Aug 2021
    Grafana and Prometheus is what I’d use if you’re deploying this in Kubernetes. I haven’t used the C++ library, but generally you can just add a Prometheus client library (e.g. https://github.com/jupp0r/prometheus-cpp ) which makes it quite easy to instrument your application and expose metrics via HTTP. Then you need to configure Prometheus to scrape metrics from your application.

What are some alternatives?

When comparing skywalking and prometheus-cpp you can also consider the following projects:

prometheus - The Prometheus monitoring system and time series database.

icinga2 - The core of our monitoring platform with a powerful configuration language and REST API.

jaeger - CNCF Jaeger, a Distributed Tracing Platform

Grafana - The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

signoz - SigNoz is an open-source observability platform native to OpenTelemetry with logs, traces and metrics in a single application. An open-source alternative to DataDog, NewRelic, etc. 🔥 🖥. 👉 Open source Application Performance Monitoring (APM) & Observability tool

mtail - extract internal monitoring data from application logs for collection in a timeseries database

Pinpoint - APM, (Application Performance Management) tool for large-scale distributed systems.

zipkin - Zipkin is a distributed tracing system

lion - Where Lions Roam: RISC-V on the VELDT

bloaty - Bloaty: a size profiler for binaries