opentelemetry-examples
sqs-consumer
opentelemetry-examples | sqs-consumer | |
---|---|---|
6 | 4 | |
16 | 1,678 | |
- | 0.9% | |
2.9 | 8.5 | |
9 months ago | 4 days ago | |
JavaScript | TypeScript | |
GNU General Public License v3.0 only | 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-examples
-
Guide to Distributed Tracing with OpenTelemetry Dotnet
You can view the complete code on GitHub here.
-
OpenTelemetry Collector as an Agent on Kubernetes – Part 2
You can find all gateway configurations in this gateway.yml file.
-
How to Instrument AWS Services with OpenTelemetry
In the example code for this blog, I also added an AWS api gateway so we can trigger the Lambda using a public URL. That is out of scope for this blog, but you can visit the source code and check it out.
-
How to Get Started with OpenTelemetry Go
We will start with creating a simple to-do app that uses Mongo and the Gin framework. Then, we will send tracing data to Jaeger Tracing and to Aspecto for visualization. You can find all the relevant files in this Github repository.
-
Guide to OpenTelemetry Distributed Tracing in Rust
Here is a link for the source code.
-
Get Started with OpenTelemetry Node: A Practical Guide for Devs
You can find the complete project in this GitHub repository. We created three versions for the tracing.js file (for Aspecto, Jaeger, and console) to make it easier to use.
sqs-consumer
-
Infinite loop pattern to poll for a queue in a REST server app
You could utilize a wrapper like sqs-consumer. Check out their implementation.
-
How to Instrument AWS Services with OpenTelemetry
To receive the messages from the queue, we will use the sqs-consumer library. The service will receive messages describing newly created orders. After some processing, it will change the order status in the table to ‘completed’.
-
Knock and Open Source
As we built out this new system, we looked at the current module ecosystem to determine if anything would fit our needs to keep this queue cleared. Unfortunately, the best module we could find, sqs-consumer, did not support FIFO queues and the issues indicated they did not have any intention to do so. Therefore, we wrote sqsiphon. Our library heavily borrows from the public interface of sqs-consumer, but is implemented in a much different way. In particular, sqsiphon leverages the Node.js event loop through setImmediate to build the polling mechanism instead of relying on SQS's "long polling" feature. Additionally, sqsiphon utilizes the JavaScript prototype to reduce reliance on expensive closures. As a bonus, OpenTracing support is built-in to sqsiphon so that applications built with it can be monitored effectively. The result is a library that can poll SQS extremely quickly while requiring very little overhead.
What are some alternatives?
opentelemetry-lambda - Create your own Lambda Layer in each OTel language using this starter code. Add the Lambda Layer to your Lamdba Function to get tracing with OpenTelemetry.
AdonisJs Application
opentelemetry-rust - The Rust OpenTelemetry implementation
SailsJS - Realtime MVC Framework for Node.js
opentelemetry-specification - Specifications for OpenTelemetry
sns-sqs-big-payload - Amazon SNS/SQS client library that enables sending and receiving messages with payload larger than 256KiB via Amazon S3.
opentelemetry-ext-js - js extensions for the open-telemetry project
Koa - Expressive middleware for node.js using ES2017 async functions
opentelemetry-dotnet - The OpenTelemetry .NET Client
Express - Fast, unopinionated, minimalist web framework for node.
diesel - A safe, extensible ORM and Query Builder for Rust
sqs-producer - Simple scaffolding for applications that produce SQS messages