opentelemetry-demo VS gRPC

Compare opentelemetry-demo vs gRPC and see what are their differences.

opentelemetry-demo

This repository contains the OpenTelemetry Astronomy Shop, a microservice-based distributed system intended to illustrate the implementation of OpenTelemetry in a near real-world environment. (by open-telemetry)

gRPC

The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) (by grpc)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
opentelemetry-demo gRPC
18 201
1,416 40,733
7.4% 1.1%
9.5 9.9
6 days ago 3 days ago
TypeScript C++
Apache License 2.0 Apache License 2.0
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.

opentelemetry-demo

Posts with mentions or reviews of opentelemetry-demo. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-04.
  • Implementing OTel Trace Context Propagation Through Message Brokers with Go
    4 projects | dev.to | 4 Apr 2024
    Here is a typical trace from the OpenTelemetry demo project.
  • Synthetic Monitoring with the Tracetest GitHub Action
    4 projects | dev.to | 14 Dec 2023
    # test suite based on https://github.com/open-telemetry/opentelemetry-demo/tree/main/test/tracetesting/frontend-service type: Test spec: id: frontend-view-cart name: 'Frontend: View cart' description: Simulate a user viewing the shopping cart trigger: type: http httpRequest: url: http://${var:FRONTEND_ADDR}/api/cart?userId=2491f868-88f1-4345-8836-d5d8511a9f83 method: GET headers: - key: Content-Type value: application/json specs: - name: It called the frontend with success selector: span[tracetest.span.type="general" name="Tracetest trigger"] assertions: - attr:tracetest.response.status = 200 - name: It retrieved the cart items correctly selector: span[name="oteldemo.CartService/GetCart"] assertions: - attr:rpc.grpc.status_code = 0
  • The Power of Traces: Learn by Contributing to OpenTelemetry
    3 projects | dev.to | 15 Nov 2023
    Contributing to the OpenTelemetry Demo is a great way to get involved and showcase your skills in the OpenTelemetry community. It's a real-world example of OpenTelemetry in action, and by actively contributing, you enhance your understanding and improve the project's quality.
  • Tracetest Monthly Newsletter - July 2023
    3 projects | dev.to | 14 Aug 2023
    Trace-based testing added to OpenTelemetry Demo
  • Hands-on OpenTelemetry: Troubleshoot issues with your instrumented apps
    5 projects | dev.to | 27 Jun 2023
    Examples and the tutorial in this blog post use the OpenTelemetry Astronomy Shop Demo to show what you can do with OpenTelemetry and New Relic. This application is built and maintained by the OpenTelemetry open-source community, and it provides a real-world example of a distributed application that’s been instrumented with OpenTelemetry. In the Deploying the OpenTelemetry Astronomy Shop demo app section, you’ll have an opportunity to get hands-on experience spinning up your own version of this application. You’ll learn how to:
  • Looking for resources to learn Kubernetes at a deep level.
    2 projects | /r/kubernetes | 30 Apr 2023
    Take this https://github.com/open-telemetry/opentelemetry-demo
  • 2 Years Solution Engineer Experience + 1 Support Engineering, Would my background fit moving into SRE?
    1 project | /r/sre | 31 Mar 2023
    I mean, you really just need experience instrumenting apps and tinkering with them to play with OTEL. https://github.com/open-telemetry/opentelemetry-demo is a good start. You can modify the collector to point to any backend of your choice.
  • Tracetest in Action: Running Trace-Based Tests on the OpenTelemetry Demo App with Nomad
    11 projects | dev.to | 28 Feb 2023
    I got to play around with these newer features last December, after a months-long hiatus, and it was really cool to see the evolution of the product. If you follow my work, you’ll know that I play in both the Kubernetes and Nomad worlds. Today, I’ll be taking you on a quick little guided tour of Tracetest, using Traces from the OpenTelemetry Demo App to give you a feel for how it works. The whole setup will be running on HashiCorp Nomad. \
  • Chaining API Tests to Handle Complex Distributed System Testing
    4 projects | dev.to | 8 Feb 2023
    ​ By having an observability infrastructure gather information about a set of API/microservices, we can have a concise view of the operation of these services and start thinking in an observability-driven way to test your software. ​ Tracetest can help. When given an API endpoint, Tracetest checks observability traces to see if this API is behaving as intended. ​ For example, let’s try to test an OpenTelemetry Astronomy Store which has the exact same use cases that we want to check. ​ To test the "Add product to the shopping cart" task, we can create a test, define a URL and payload in the trigger section that we send to the Cart API and use the specs to define our assertions, checking if the API was called with the correct Product ID and if this product was persisted correctly. ​
  • How to Convert Kubernetes Manifests into Nomad Jobspecs
    8 projects | dev.to | 19 Dec 2022
    In my latest Nomadification Project (TM), I got the OpenTelemetry Demo App to run on Nomad (with HashiQube, of course). To do this, I used the OpenTelemetry Demo App Helm Chart as my guide. In doing this, and other Nomadifications, I realized that I’ve never gone through the process of explaining the conversion process from Kubernetes manifests to Nomad jobspecs.

gRPC

Posts with mentions or reviews of gRPC. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-03.
  • Golang: out-of-box backpressure handling with gRPC, proven by a Grafana dashboard
    4 projects | dev.to | 3 Apr 2024
    gRPC, built on HTTP/2, inherently supports flow control. The server can push updates, but it must also respect flow control signals from the client, ensuring that it doesn't send data faster than what the client can handle.
  • Reverse Engineering Protobuf Definitions from Compiled Binaries
    5 projects | news.ycombinator.com | 9 Mar 2024
    Yes, grpc_cli tool uses essentially the same mechanism except implemented as a grpc service rather than as a stubby service. The basic principle of both is implementing the C++ proto library's DescriptorDatabase interface with cached recursive queries of (usually) the server's compiled in FileDescriptorProtos.

    See also https://github.com/grpc/grpc/blob/master/doc/server-reflecti...

    The primary difference between what grpc does and what stubby does is that grpc uses a stream to ensure that the reflection requests all go to the same server to avoid incompatible version skew and duplicate proto transmissions. With that said, in practice version skew is rarely a problem for grpc_cli style "issue a single RPC" usecases: even if requests do go to two or more different versions of a binary that might have incompatible proto graphs, it is very common for the request and response and RPC to all be in the same proto file so you only need to make one RPC in the first place unless you're using an extension mechanism like proto2 extensions or google.protobuf.Any.

  • Delving Deeper: Enriching Microservices with Golang with CloudWeGo
    7 projects | dev.to | 22 Feb 2024
    While gRPC and Apache Thrift have served the microservice architecture well, CloudWeGo's advanced features and performance metrics set it apart as a promising open source solution for the future.
  • gRPC Name Resolution & Load Balancing on Kubernetes: Everything you need to know (and probably a bit more)
    5 projects | dev.to | 6 Feb 2024
    The loadBalancingConfig is what we use in order to decide which policy to go for (round_robin in this case). This JSON representation is based on a protobuf message, then why does the name resolver returns it in the JSON format? The main reason is that loadBalancingConfig is a oneof field inside the proto message and so it can not contain values unknown to the gRPC if used in the proto format. The JSON representation does not have this requirement so we can use a custom loadBalancingConfig .
  • Dart on the Server: Exploring Server-Side Dart Technologies in 2024
    4 projects | dev.to | 30 Jan 2024
    The Dart implementation of gRPC which puts mobile and HTTP/2 first. It's built and maintained by the Dart team. gRPC is a high-performance RPC (remote procedure call) framework that is optimized for efficient data transfer.
  • Usando Spring Boot RestClient
    4 projects | dev.to | 30 Jan 2024
  • How to Build & Deploy Scalable Microservices with NodeJS, TypeScript and Docker || A Comprehesive Guide
    13 projects | dev.to | 25 Jan 2024
    gRPC is a high-performance, open-source RPC (Remote Procedure Call) framework initially developed by Google. It uses Protocol Buffers for serialization and supports bidirectional streaming.
  • Actual SSH over HTTPS
    9 projects | news.ycombinator.com | 23 Dec 2023
    In general, tunneling through HTTP2 turns out to be a great choice. There is a RPC protocol built on top of HTTP2: gRPC[1].

    This is because HTTP2 is great at exploiting a TCP connection to transmit and receive multiple data structures concurrently - multiplexing.

    There may not be a reason to use HTTP3 however, as QUIC already provides multiplexing.

    I expect that in the future most communications will be over encrypted HTTP2 and QUIC simply because middleware creators can not resist to discriminate.

    [1] <https://grpc.io>

  • Why gRPC is not natively supported by Browsers
    1 project | dev.to | 17 Dec 2023
    Even in the https://grpc.io blog says this
  • SGSG (Svelte + Go + SQLite + gRPC) - open source application
    5 projects | /r/sveltejs | 6 Dec 2023
    gRPC

What are some alternatives?

When comparing opentelemetry-demo and gRPC you can also consider the following projects:

hypertrace - An open source distributed tracing & observability platform

ZeroMQ - ZeroMQ core engine in C++, implements ZMTP/3.1

nomad-conversions - Repo containing conversions of Kubernetes and/or Docker Compose apps to Nomad jobspecs

Apache Thrift - Apache Thrift

keptn - Cloud-native application life-cycle orchestration. Keptn automates your SLO-driven multi-stage delivery and operations & remediation of your applications.

Cap'n Proto - Cap'n Proto serialization/RPC system - core tools and C++ library

hashiqube - HashiQube - All the Hashicorp products in a Container or VM for anyone to demo or practise with.

zeroRPC - zerorpc for python

Eliot - Eliot: the logging system that tells you *why* it happened

rpclib - rpclib is a modern C++ msgpack-RPC server and client library

unified-observability-k8s-kubecon - Unified Observability for Kubernetes at KubeCon NA '22

nanomsg - nanomsg library