{"id":20260460,"url":"https://github.com/influxdata/influxdb-observability","last_synced_at":"2025-05-15T11:03:14.903Z","repository":{"id":37792123,"uuid":"346896461","full_name":"influxdata/influxdb-observability","owner":"influxdata","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-28T12:08:53.000Z","size":1884,"stargazers_count":50,"open_issues_count":12,"forks_count":27,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-07T13:00:44.568Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/influxdata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-12T01:36:18.000Z","updated_at":"2025-03-27T22:21:47.000Z","dependencies_parsed_at":"2023-02-15T15:31:14.696Z","dependency_job_id":"5b835719-9dfa-4e76-8991-739670b5b655","html_url":"https://github.com/influxdata/influxdb-observability","commit_stats":{"total_commits":332,"total_committers":14,"mean_commits":"23.714285714285715","dds":0.4036144578313253,"last_synced_commit":"7bc96fcf948bd65b6d9cc64bd8e4b1417bf1da53"},"previous_names":[],"tags_count":236,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/influxdata%2Finfluxdb-observability","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/influxdata%2Finfluxdb-observability/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/influxdata%2Finfluxdb-observability/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/influxdata%2Finfluxdb-observability/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/influxdata","download_url":"https://codeload.github.com/influxdata/influxdb-observability/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248912225,"owners_count":21182238,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T11:19:45.524Z","updated_at":"2025-04-14T15:54:58.491Z","avatar_url":"https://github.com/influxdata.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# InfluxDB Observability\n\nThis repository is a reference for converting observability signals (traces, metrics, logs) to/from a common InfluxDB schema.\n\n## Demo\n\nSteps to run the write full write/query demo follow.\n\nIn an InfluxDB Cloud 2 account backed by IOx, create a bucket named `otel`.\nThen, create a token with permission to read and write to that bucket.\n\nIn demo/docker-compose.yml, set values for these keys.\nThe key `INFLUXDB_BUCKET_ARCHIVE` is optional;\nif set, it should point to an InfluxDB bucket with longer retention policy than `INFLUXDB_BUCKET`,\nso that the \"Archive Trace\" button in Jaeger works properly:\n```yaml\nINFLUXDB_ADDR: \u003cregion specific hostname - no https prefix\u003e\nINFLUXDB_BUCKET: otel\nINFLUXDB_BUCKET_ARCHIVE: otel-archive\nINFLUXDB_TOKEN: \u003cthe API token you just created\u003e\n```\n\nIn demo/otelcol-config.yml, set the similar values for these keys:\n```yaml\nendpoint: https://\u003c region specific URL - https://region.csp.cloud2.influxdata.com/ \u003e\nbucket: otel\ntoken: \u003cthe API token you just created\u003e\n```\n\nRun the docker compose:\n```console\n$ docker compose --file demo/docker-compose.yml --project-directory . up --abort-on-container-exit --remove-orphans\n```\n\nTraces are generated by \"HotRod\", an application designed to demonstrate tracing.\nBrowse to HotRod at http://localhost:8080 and click some buttons to trigger trace activity.\n\nQuery those traces.\nBrowse to Jaeger at http://localhost:16686 and click \"Find Traces\" near the bottom left.\n\nClick any trace.\n\nView the dependency graph.\nClick \"System Architecture\".\n\nThe images `otelcol-influxdb` and `jaeger-influxdb` are automatically built and pushed to Docker at https://hub.docker.com/r/jacobmarble/otelcol-influxdb and https://hub.docker.com/r/jacobmarble/jaeger-influxdb .\n\n## Schema Reference\n\n[Schema reference with conversion tables](docs/index.md).\n\n## Modules\n\n### `common`\n\nThe golang package `common` contains simple utilities and common string values,\nused in at least two of the above-mentioned packages.\n\n### `otel2influx` and `influx2otel`\n\nThe golang package [`otel2influx`](otel2influx/README.md) converts OpenTelemetry protocol buffer objects to (measurement, tags, fields, timestamp) tuples.\nIt is imported by [the OpenTelemetry Collector InfluxDB exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/influxdbexporter)\nand by [the Telegraf OpenTelemetry input plugin](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/opentelemetry).\n\nThe golang package [`influx2otel`](influx2otel/README.md) converts (measurement, tags, fields, timestamp) tuples to OpenTelemetry protocol buffer objects.\nIt is imported by [the OpenTelemtry Collector InfluxDB receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/influxdbreceiver)\nand by [the Telegraf OpenTelemetry output plugin](https://github.com/influxdata/telegraf/tree/master/plugins/outputs/opentelemetry).\n\n### `jaeger-influxdb`\n\nThe [Jaeger Query Plugin for InfluxDB](jaeger-influxdb) enables querying traces stored in InfluxDB/IOx via the Jaeger UI.\n\n### `tests-integration`\n\nThe golang package `tests-integration` contains integration tests.\nThese tests exercise the above packages against OpenTelemetry Collector Contrib and Telegraf.\n\nTo run these tests:\n```console\n$ cd tests-integration\n$ go test\n```\n\n## Development\n\nThe file `demo/docker-compose-development.yml` is similar to the demo above,\nbut it uses local builds of the `otelcol-influxdb` and `jaeger-influxdb` images.\n\nBuild the needed docker images:\n```console\n$ docker compose --file demo/docker-compose-development.yml --project-directory . build\n```\n\nStart the development demo environment:\n```console\n$ docker compose --file demo/docker-compose-development.yml --project-directory . up --abort-on-container-exit --remove-orphans\n```\n\n## Contributing\n\nChanges can be tested on a local branch using the `run-checks.sh` tool.\n`run-checks.sh` verifies `go mod tidy` using `git diff`,\nso any changes must be staged for commit in order for `run-checks.sh` to pass.\n\nTo update critical dependencies (OpenTelemetry, Jaeger, and intra-repo modules) in the various modules of this repository:\n- run `update-deps.sh`\n- stage the changed `go.mod` and `go.sum` files\n- run `run-checks.sh`\n\n## TODO\nFork this demo:\nhttps://github.com/open-telemetry/opentelemetry-demo\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfluxdata%2Finfluxdb-observability","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfluxdata%2Finfluxdb-observability","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfluxdata%2Finfluxdb-observability/lists"}