opentelemetry-specification
Hangfire
Our great sponsors
opentelemetry-specification | Hangfire | |
---|---|---|
99 | 61 | |
3,579 | 8,969 | |
1.3% | 1.4% | |
9.2 | 9.4 | |
about 2 hours ago | about 12 hours ago | |
Makefile | C# | |
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-specification
-
OpenTelemetry Journey #00 - Introduction to OpenTelemetry
It means that the OpenTelemetry project provides not only a specification to define the contract between the applications, collectors, and telemetry databases, but also a set of APIs, SDKs, and tools like instrumentation libraries (for different languages), collectors, operators, etc. OpenTelemetry is open-source and vendor-agnostic, so the project is not tied to any specific vendor or cloud provider.
-
Migrating to OpenTelemetry
Sure, happy to provide more specifics!
Our main issue was the lack of a synchronous gauge. The officially supported asynchronous API of registering a callback function to report a gauge metric is very different from how we were doing things before, and would have required lots of refactoring of our code. Instead, we wrote a wrapper that exposes a synchronous-like API: https://gist.github.com/yolken-airplane/027867b753840f7d15d6....
It seems like this is a common feature request across many of the SDKs, and it's in the process of being fixed in some of them (https://github.com/open-telemetry/opentelemetry-specificatio...)? I'm not sure what the plans are for the golang SDK specifically.
Another, more minor issue, is the lack of support for "constant" attributes that are applied to all metrics. We use these to identify the app, among other use cases, so we added wrappers around the various "Add", "Record", "Observe", etc. calls that automatically add these. (It's totally possible that this is supported and I missed it, in which case please let me know!).
Overall, the SDK was generally well-written and well-documented, we just needed some extra work to make the interfaces more similar to the ones were were using before.
-
OpenTelemetry Exporters - Types and Configuration Steps
OpenTelemetry is an open-source collection of tools, APIs, and SDKs that aims to standardize the way we generate and collect telemetry data. It follows a specification-driven development. The OpenTelemetry specification has design and implementation guidelines for how the instrumentation libraries should be implemented. In addition, it provides client libraries in all the major programming languages that follow the specification.
-
OpenTelemetry in 2023
Two problems with OpenTelemetry:
1. It doesn't know what the hell it is. Is it a semantic standard? Is a protocol? It is a facade? What layer of abstraction does it provide? Answer: All of the above! All the things! All the layers!
2. No one from OpenTelemetry has actually tried instrumenting a library. And if they have, they haven't the first suggestion on how instrumenters should actually use metrics, traces, and logs. Do you write to all three? To one? I asked this question two years ago, not a single response. [1]
[1] https://github.com/open-telemetry/opentelemetry-specificatio...
-
Tracetest Analyzer: Identify patterns and issues with code instrumentation
OpenTelemetry Specification GitHub
-
OpenTelemetry vs. OpenMetrics: Which semantic convention should you use?
One update to this: we proposed replacing the count suffix in OpenTelemetry with total to match Prometheus/OpenMetrics. That discussion resulted in the count suffix being removed from the OpenTelemetry semantic conventions. We'll soon update our metric from being called function.calls.count to just function.calls and the generated Prometheus queries will refer to function_calls_total. That resolves one of the main conflicts between the two specs.
-
Distributed Tracing with OpenTelemetry - Part I
OpenTelemetry is a standard for implementing telemetry in your applications. It provides a specification, containing the requirements that all implementations should follow as well as some implementations for major languages, including an API and a SDK to interact with it.
-
Observability - ApostropheCMS, OpenTelemetry, and New Relic
At this point, we are about to do the real work where we have to configure OpenTelemetry and export telemetry data to New Relic. Exporting this kind of data relies on a specific protocol; the OpenTelemetry Protocol or OTLP.
-
OpenTelemetry Logs - A Complete Introduction & Implementation
OpenTelemetry provides instrumentation libraries for your application. The development of these libraries is guided by the OpenTelemetry specification. The OpenTelemetry specification describes the cross-language requirements and design expectations for all OpenTelemetry implementations in various programming languages.
-
An Open Source Observability Platform | SigNoz
It follows a specification-driven development. The OpenTelemetry specification has design and implementation guidelines for how the instrumentation libraries should be implemented. In addition, it provides client libraries in all the major programming languages which follow the specification.
Hangfire
-
Deno Cron
Unpopular opinion incoming... What I see is yet another way that the backend JS world is finally achieving something .NET had years ago[0].
Node/Deno/Bun/etc. + npm sounds super straightforward at first glance (and it is at first). But I've thought for years that it's far easier to be productive as an organization on .NET in Visual Studio, since it's simpler to design, deliver, and maintain infrastructure.
-
What can I use as a simple message bus with persistence in .NET?
Its hard to tell what tool would be a best fit without more information, but I would suggest looking at Hangfire for background job processing: https://www.hangfire.io/
-
Nightclub Website
Hangfire - for Scheduled Jobs like setting an Event to "inactive" after the party took place
- How do you run adhoc scripts on an ASP.Net 6 project
- How do I get a library to do background work?
-
.NET Timer
For Hangfire, you can check out their GitHub repo here: https://github.com/HangfireIO/Hangfire. They also have detailed documentation available on their website: https://www.hangfire.io/.
-
A .NET task batching and management library. After writing this 3 times at previous jobs, I propose an Open-Source library!
https://www.hangfire.io/ ?
Have you looked at hangfire?
how does this differ from something like https://www.hangfire.io/?
-
Seeking people for collaboration on open source projects I started. Also open to ideas. Preferably long-term. I can help you learn and you can help me with other things, such as coding, UI and more. Beginner friendly. Safe environment.
That aside, I know it looks like/is another case of reinventing the wheel. However, I like that approach sometimes, for some things. For me it was primarily about learning, having some fun and experimenting with different things. The project is also dead simple to be honest, basically a few endpoints that check credentials, return tokens and that's about it. The next project I was thinking of was a job runner, for which I know we have alternatives such as https://www.hangfire.io/, but I find solving that problem also challenging and fun. My strategy usually is start small, then grow if needed.
What are some alternatives?
QuartzNet - Quartz Enterprise Scheduler .NET
RabbitMQ.NET - RabbitMQ .NET client for .NET Standard 2.0+ and .NET 4.6.2+
MassTransit - Distributed Application Framework for .NET
Coravel - Near-zero config .NET library that makes advanced application features like Task Scheduling, Caching, Queuing, Event Broadcasting, and more a breeze!
Kafka Client
FluentScheduler - Automated job scheduler with fluent interface for the .NET platform.
Sentry - Developer-first error tracking and performance monitoring
NServiceBus - Build, version, and monitor better microservices with the most powerful service platform for .NET
Polly - Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner. From version 6.0.1, Polly targets .NET Standard 1.1 and 2.0+.
CAP - Distributed transaction solution in micro-service base on eventually consistency, also an eventbus with Outbox pattern
NetMQ - A 100% native C# implementation of ZeroMQ for .NET
Serilog - Simple .NET logging with fully-structured events