{"id":19292517,"url":"https://github.com/friendsofopentelemetry/opentelemetry-nix","last_synced_at":"2025-04-22T07:31:48.698Z","repository":{"id":208970815,"uuid":"722650655","full_name":"FriendsOfOpenTelemetry/opentelemetry-nix","owner":"FriendsOfOpenTelemetry","description":"OpenTelemetry tools \u0026 library for Nix","archived":false,"fork":false,"pushed_at":"2025-04-06T01:50:29.000Z","size":829,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T02:32:17.648Z","etag":null,"topics":["nix","nix-flake","opentelemetry","opentelemetry-collector"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FriendsOfOpenTelemetry.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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":"2023-11-23T15:55:54.000Z","updated_at":"2025-03-11T07:05:15.000Z","dependencies_parsed_at":"2024-02-12T10:28:33.546Z","dependency_job_id":"67db7d29-019f-41bc-ad41-cd8caed92dbf","html_url":"https://github.com/FriendsOfOpenTelemetry/opentelemetry-nix","commit_stats":null,"previous_names":["gaelreyrol/otel-collector-builder-nix"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfOpenTelemetry%2Fopentelemetry-nix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfOpenTelemetry%2Fopentelemetry-nix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfOpenTelemetry%2Fopentelemetry-nix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfOpenTelemetry%2Fopentelemetry-nix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FriendsOfOpenTelemetry","download_url":"https://codeload.github.com/FriendsOfOpenTelemetry/opentelemetry-nix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250195034,"owners_count":21390230,"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":["nix","nix-flake","opentelemetry","opentelemetry-collector"],"created_at":"2024-11-09T22:31:20.786Z","updated_at":"2025-04-22T07:31:48.691Z","avatar_url":"https://github.com/FriendsOfOpenTelemetry.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenTelemetry for Nix\n\n[![.github/workflows/build.yml](https://github.com/FriendsOfOpenTelemetry/opentelemetry-nix/actions/workflows/build.yml/badge.svg)](https://github.com/FriendsOfOpenTelemetry/opentelemetry-nix/actions/workflows/build.yml)\n[![.github/workflows/check.yml](https://github.com/FriendsOfOpenTelemetry/opentelemetry-nix/actions/workflows/check.yml/badge.svg)](https://github.com/FriendsOfOpenTelemetry/opentelemetry-nix/actions/workflows/check.yml)\n\n[![flakestry.dev](https://flakestry.dev/api/badge/flake/github/FriendsOfOpenTelemetry/opentelemetry-nix)](https://flakestry.dev/flake/github/FriendsOfOpenTelemetry/opentelemetry-nix)\n[![FlakeHub](https://img.shields.io/endpoint?url=https://flakehub.com/f/FriendsOfOpenTelemetry/opentelemetry-nix/badge)](https://flakehub.com/flake/FriendsOfOpenTelemetry/opentelemetry-nix)\n\n\u003e This repository exposes various OpenTelemetry related packages and a library to build custom OpenTelemetry collectors\n\n## Packages\n\n- [tracetest](https://github.com/kubeshop/tracetest) - Build integration and end-to-end tests in minutes using OpenTelemetry and trace-based testing\n- [tracepusher](https://github.com/agardnerIT/tracepusher) - Generate and push OpenTelemetry Trace data to an OTEL collector in JSON format \n- [har-to-otel](https://github.com/agardnerIT/tracepusher/tree/main/har-to-otel) - Chrome DevTools HAR file to OpenTelemetry converter\n\n## Library\n\n- `buildOtelCollector`: build a custom OpenTelemetry collector\n- `mkOtelCollectorBuilderConfiguration`: create an OpenTelemetry collector builder configuration file\n\n## Usage\n\nThis repository uses Nix \"flake\" feature and does not provider other usages. Please refer to the [documentation](https://nixos.org/manual/nix/unstable/contributing/experimental-features.html?highlight=enable#xp-feature-flakes) to enable it.\n\nEach package is exposed as an application, you can run each one of them with `nix run`:\n\n```bash\nnix run github:FriendsOfOpenTelemtry/opentelemetry-nix#otel-collector-builder\nnix run github:FriendsOfOpenTelemtry/opentelemetry-nix#{package-name}\n```\n\nPlease refer to the [nix run](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-run) documentation for wider use.\n\nThose packages are also available in an overlay.\n\n### Flake\n\nImport the repository as input:\n\n```nix\ninputs = {\n  nixpkgs.url = \"github:NixOS/nixpkgs/nixpkgs-unstable\";\n  opentelemetry-nix.url = \"github:FriendsOfOpenTelemetry/opentelemetry-nix\";\n};\n```\n\nImport the overlay:\n\n```nix\npkgs = import inputs.nixpkgs {\n  inherit system;\n  overlays = [\n    inputs.opentelemetry-nix.overlays.default\n  ];\n};\n```\n\nUse the packages:\n\n```nix\n# for example in a devShell:\ndevShells.x86_64-linux.default = pkgs.mkShell {\n  packages = [ pkgs.otel-collector-builder ];\n}\n```\n\n#### Library\n\n##### `buildOtelCollector`: Build a custom OpenTelemetry collector\n\n```nix\n# for example as a package:\npackages.x86_64-linux.default = pkgs.buildOtelCollector {\n  pname = \"otel-collector-debugexporter\";\n  version = \"1.0.0\";\n  config = {\n    exporters = [\n      { gomod = \"go.opentelemetry.io/collector/exporter/debugexporter v0.115.0\"; }\n    ];\n  };\n  vendorHash = \"sha256-sq3T9bOWDeJMZD9+LE4nPc9fqF3tkEaGEy4dJ/qgkgA=\";\n}\n```\n\n###### Options\n\n- `pname`: The package name.\n- `version`: The package version.\n- `config`: The configuration that will be passed to `mkOtelCollectorBuilderConfiguration`. It must match the exact YAML representation of the configuration options mentionned in the builder [documentation](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder#configuration) for `extensions, exporters, receivers, processors \u0026 replaces` options.\n- `vendorHash`: The hash of the custom collector sources \u0026 modules.\n- `otelBuilderPackage`: The OpenTelemetry collector builder package to use, defaults the one available in this flake.\n- `meta`: The meta attributes to use to describe the custom OpenTelemetry collector package.\n\n##### `mkOtelCollectorBuilderConfiguration`: Create an OpenTelemetry collector builder configuration file\n\n```nix\n# for example as a package:\npackages.x86_64-linux.default = pkgs.mkOtelCollectorBuilderConfiguration {\n  pname = \"otel-collector-debugexporter\";\n  version = \"1.0.0\";\n  config = {\n    exporters = [\n      { gomod = \"go.opentelemetry.io/collector/exporter/debugexporter v0.115.0\"; }\n    ];\n  };\n}\n```\n\n###### Options\n\n- `pname`: The configuration name.\n- `version`: The configuration version.\n- `config`: The configuration to use. It must match the exact YAML representation of the configuration options mentionned in the builder [documentation](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder#configuration) for `extensions, exporters, receivers, processors \u0026 replaces` options.\n- `goPackage`: The go package to use when building the generated configuration file with the OpenTelemetry collector builder.\n\n## Cachix\n\nCachix is used to store package binaries. \n\nTo use our cache, run `cachix use opentelemetry`.\n\nRefer to the [documentation](https://docs.cachix.org/) to install Cachix.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriendsofopentelemetry%2Fopentelemetry-nix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffriendsofopentelemetry%2Fopentelemetry-nix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriendsofopentelemetry%2Fopentelemetry-nix/lists"}