Autogenerators
Requirements
Prerequisites here
What Is An Autogenerator?
An autogenerator
is a reference implementation of OpenTelemetry that can run as a standalone single deployment application and emits interesting telemetry (metrics/traces/logs) to use as a 'how-to' template for your own OpenTelemetry use.
The goal of a reference implementation is to answer the question "how do I instrument my app for OpenTelemetry?" via showing a simple live example app that you can try yourself and then refer to for your own projects.
Instructions
Each autogenerator project contains the following:
All Examples
- Application source code
- Various scripts useful in building, deploying, and running the app. These vary but are labelled clearly i.e. deploy.sh
and delete.sh
.
- Scripts sometimes in order to accomplish a goal i.e. 1-configure.sh
and 2-build.sh
- Each script needs to be checked for variables that need to be changed in your environment
- Notes about each one on this page. There are no README.md instructions in each repo.
Container Examples
- buildcontainer.sh
script for building a container
- Dockerfile
to demonstrate containerization
- .yaml deployment example for Kubernetes
- Although the container examples are for Kubernetes, you can port them to any container style environment so long as required ports are open and there are no prohibitions for the deployment making requests of itself.
Monolith Examples
- Env variable and other setup/run scripts
- Otel collector config.yaml
if needed
- Monolith logs are NOT shipped by Otel Collector- if you want to ship them, they can be written to /var/
with an updated Otel collector config
Most of these example create an http client
and http server
in a loop so that client and server spans are generated.
These examples are under frequent revision so please open an issue with any bug reports.
Before beginning, study Primary Otel docs for instrumentation
The Autogenerators
Step 1 - Clone Repo
git clone https://github.com/coralogix/workshops
Step 2 - Change to Autogenerator Directory
cd workshops/workshops/otel/autogenerators
dotnet8-linux
- .NET 8 app on a Linux container
- Generates looping requests of dual client/server .NET app
- Logs with Microsoft.Extensions.Logging
- Otel Docs/Repo
dotnet6-linux
- .NET 6 app on a Linux container
- Generates looping requests of api.github.com
- Makes error spans
- Otel Docs/Repo
java
- Container / monolith built with Maven
- Generates looping requests of a self running Spring server
- Trace and span ID log auto-injection using log4j2
- Requires Coralogix parsing Body
field that contains Trace and Span IDs
- Otel Docs/Repo
node
- Container / monolith examples
- Generates looping requests of a self running Express server
- Trace and span ID log injection using Pino
- Does not require parsing for Trace and span IDs
- Otel Docs/Repo
python
- Container / monolith examples
- Generates looping requests of a self running Flask server
- Trace and span ID log injection using Python Logger
- Does not require parsing for Trace and span IDs
- Otel Docs/Repo