opentelemetry-dotnet
RabbitMQ
Our great sponsors
opentelemetry-dotnet | RabbitMQ | |
---|---|---|
7 | 92 | |
2,947 | 11,567 | |
2.9% | 1.6% | |
9.7 | 10.0 | |
7 days ago | 5 days ago | |
C# | Starlark | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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-dotnet
-
ASP.NET Core: Monitoreo con OpenTelemetry y Grafana
open-telemetry/opentelemetry-dotnet: The OpenTelemetry .NET Client (github.com)
-
Guide to Distributed Tracing with OpenTelemetry Dotnet
💡Good to know -- If you wish to export traces to Jaeger, you should use the AddJaegerExporter instead of the AddOtlpExporter. Visit the opentelemetry-dotnet repository to see how it's done.
-
Observability with Grafana Cloud and OpenTelemetry in .net microservices
We're going to use OpenTelemetry .NET SDK. Add following nuget dependencies to the project:
-
OpenTelemetry in Action: Identifying Database Dependencies
We instrument the application with the OpenTelemetry SDK and SqlClient instrumentation library for .NET. First, we add the following NuGet package references to the API’s project file:
-
State for each API Request
It should be handled automatically by OpenTelemetry middlewares. Just look through documentation and samples https://github.com/open-telemetry/opentelemetry-dotnet
-
[c#] Using W3C Trace Context standard in distributed tracing
Besides that, the propagation fields (traceparent and tracestate) were added in the message header. In the last article, I said that the standard (in the Working Draft (WD) step of the w3c process) recommends to add the propagation fields in the application-properties section by the message publisher. For the current example, I chose to propagate that context in the message header even for AMQP calls as was done in the dotnet OpenTelemetry example. It's important to reinforce that Trace Context: AMQP protocol is not a W3C Recommendation yet. Take a look at the place where the propagation fields were added:
-
Tracing End-to-End Data from Power Apps to Azure Cosmos DB
As long as the Azure Functions app knows the instrumentation key from an Application Insights instance, it traces almost everything. OpenTelemetry.NET is one of the Open Telemetry implementations, has recently released v1.0 for tracing. Both metrics and logging are close to GA. However, it doesn't work well with Azure Functions. Therefore, in this post, let's manually implement the tracing at the log level, which is sent to Application Insights.
RabbitMQ
-
Building Llama as a Service (LaaS)
Although they did not make it into production, I experimented with the RabbitMQ message broker, Python (Django, Flask), Kubernetes + minikube, JWT, and NGINX. This was a hobby project, but I intended to learn about microservices along the way.
-
A Developer's Journal: Simplifying the Twelve-Factor App
Messaging/Queueing Systems (Amazon SQS, RabbitMQ, Beanstalkd)
-
FastStream: Python's framework for Efficient Message Queue Handling
Later, we discovered Propan, a library created by Nikita Pastukhov, which solved similar problems but for RabbitMQ. Recognizing the potential for collaboration, we joined forces with Nikita to build a unified library that could work seamlessly with both Kafka and RabbitMQ. And that's how FastStream came to be—a solution born out of the need for simplicity and efficiency in microservices development.
-
The Complete Microservices Guide
Inter-Service Communication: Middleware provides communication channels and protocols that enable microservices to communicate with each other. This can include message brokers like RabbitMQ, Apache Kafka, RPC frameworks like gRPC, or RESTful APIs.
-
Project Structure Review [.Net] [Console]
This is an implementation of pub/sub. The publisher is on a separate project. The message broker is Azure Service Bus. We use NServiceBus for code implementation. I use rabbitMQ broker for local tests. Nothing I can do about the tech stack. This is more of a high level single project structure review 😅
-
The Role of Queues in Building Efficient Distributed Applications
RabbitMQ is a robust and highly configurable open-source message broker that implements the Advanced Message Queuing Protocol (AMQP).
-
Should I chain calls in backend?
When using third-party services, especially within a "transaction", it's often a good idea to use a persistent Message Queue (MQ) system like RabbitMQ. Go through all their tutorials to get a really good understanding of how message queues work and how they can be used to solve your problem.
- Node still seems better than python after all this time for web server speed but..
-
Delayed events pattern, no more crons
The best technical solution to provide the event queues is to use a message-broker technology like RabbitMQ.
- RabbitMQ 3.12.0 Released
What are some alternatives?
ApplicationInsights-dotnet - ApplicationInsights-dotnet
NATS - High-Performance server for NATS.io, the cloud and edge native messaging system.
zipkin - Zipkin is a distributed tracing system
mosquitto - Eclipse Mosquitto - An open source MQTT broker
C# StatsD Client
MediatR - Simple, unambitious mediator implementation in .NET
ASP.NET Core - ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
nsq - A realtime distributed messaging platform
trace-context-w3c - W3C Trace Context purpose of and what kind of problem it came to solve.
BeanstalkD - Beanstalk is a simple, fast work queue.
opentelemetry-specification - Specifications for OpenTelemetry
rq - Simple job queues for Python