An open API service indexing awesome lists of open source software.

https://github.com/rogercoll/telemetrygen-receiver

OpenTelemetry Collector receiver that generates Metrics, Logs and Traces at a given throughput
https://github.com/rogercoll/telemetrygen-receiver

Last synced: 2 months ago
JSON representation

OpenTelemetry Collector receiver that generates Metrics, Logs and Traces at a given throughput

Awesome Lists containing this project

README

        

# Telemetry Generator receiver

| Status | |
| ------------- |-----------|
| Stability | [development]: metrics |
| Distributions | [] |
| Issues | [![Open issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aopen%20label%3Areceiver%2Ftelemetrygen%20&label=open&color=orange&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aopen+is%3Aissue+label%3Areceiver%2Ftelemetrygen) [![Closed issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aclosed%20label%3Areceiver%2Ftelemetrygen%20&label=closed&color=blue&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aclosed+is%3Aissue+label%3Areceiver%2Ftelemetrygen) |
| [Code Owners](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CONTRIBUTING.md#becoming-a-code-owner) | [@rogercoll](https://www.github.com/rogercoll) |

[development]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#development

The OpenTelemetry Telemetry Generator Receiver is a specialized OpenTelemetry receiver designed to generate metrics, logs, and traces at a user-defined throughput (in bytes per second for each signal). The number of total generated bytes is computed by encoding the telemetry to JSON. This receiver enables you to simulate realistic telemetry flows for testing, benchmarking, and validation purposes.

## How Telemetry Is Generated

The receiver utilizes pre-captured telemetry data from a typical OpenTelemetry Demo execution, which represents a diverse set of application scenarios and workloads. When generating telemetry, the receiver uses this base data, dynamically adjusting timestamps to match the current time. This approach ensures the generated telemetry retains the structure and content of authentic OpenTelemetry Demo data while appearing as though it were generated in real-time. The pre-captured telemetry is embedded in the receiver and can be found in [demo-data](./demo-data/).

## Sample configuration

```yaml
receivers:
telemetrygen:
metrics:
throughput: 1048576 # 1MB/s (1024*1024)
logs:
throughput: 1048576 # 1MB/s (1024*1024)
traces:
throughput: 1048576 # 1MB/s (1024*1024)
services:
randomized_name_count: 200

processors:

exporters:
debug:
verbosity: detailed

service:
telemetry:
logs:
level: debug
pipelines:
metrics:
receivers: [telemetrygen]
processors:
exporters: [debug]
logs:
receivers: [telemetrygen]
processors:
exporters: [debug]
traces:
receivers: [telemetrygen]
processors:
exporters: [debug]
```