Telemetry generator for OpenTelemetry
This utility simulates a client generating traces, metrics, and logs. It is useful for testing and demonstration purposes.
Installing
To install the latest version run the following command:
go install github.com/open-telemetry/opentelemetry-collector-contrib/cmd/telemetrygen@latest
Check the go install
reference to install specific versions.
Docker build
You can build locally the Docker image with:
make docker-telemetrygen
Using github actions, we also push a docker image on commit to main or on release to this Github docker registry.
Running
First, you'll need an OpenTelemetry Collector to receive the telemetry data. Follow the project's instructions for a detailed setting up guide. The following configuration file should be sufficient:
config.yaml:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
processors:
batch:
exporters:
debug:
verbosity: detailed
service:
pipelines:
logs:
receivers: [otlp]
processors: [batch]
exporters: [debug]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [debug]
traces:
receivers: [otlp]
processors: [batch]
exporters: [debug]
Starting OpenTelemetry collector via docker:
docker run -p 4317:4317 -v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.86.0
Other options for running the collector are documented here https://opentelemetry.io/docs/collector/getting-started/
Once the OpenTelemetry Collector instance is up and running, run telemetrygen
for your desired telemetry:
Traces
telemetrygen traces --otlp-insecure --duration 5s
Or, to generate a specific number of traces:
telemetrygen traces --otlp-insecure --traces 1
To send traces in secure connection, see examples/secure-tracing
Check telemetrygen traces --help
for all the options.
Logs
telemetrygen logs --duration 5s --otlp-insecure
Metrics
telemetrygen metrics --duration 5s --otlp-insecure