diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/misc/opentelemetry-collector')
-rw-r--r-- | nixpkgs/pkgs/tools/misc/opentelemetry-collector/contrib.nix | 50 | ||||
-rw-r--r-- | nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix | 52 |
2 files changed, 102 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/misc/opentelemetry-collector/contrib.nix b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/contrib.nix new file mode 100644 index 000000000000..384c448e1d93 --- /dev/null +++ b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/contrib.nix @@ -0,0 +1,50 @@ +{ buildGoModule +, fetchFromGitHub +, lib +, stdenv +}: + +buildGoModule rec { + pname = "opentelemetry-collector-contrib"; + version = "0.47.0"; + + src = fetchFromGitHub { + owner = "open-telemetry"; + repo = "opentelemetry-collector-contrib"; + rev = "v${version}"; + sha256 = "sha256-IbpQd01uU6/Ihli+gVDjTB8T8cj//XHoZYcDjXD635Q="; + }; + # proxy vendor to avoid hash missmatches between linux and macOS + proxyVendor = true; + vendorSha256 = "sha256-1svBCXfutjXfXfVqVHUTAt9T1ON/qbiS+VCt5kP/YIc="; + + subPackages = [ "cmd/otelcontribcol" ]; + + # CGO_ENABLED=0 required for mac - "error: 'TARGET_OS_MAC' is not defined, evaluates to 0" + # https://github.com/shirou/gopsutil/issues/976 + CGO_ENABLED = if stdenv.isLinux then 1 else 0; + + ldflags = [ + "-s" + "-w" + "-X github.com/open-telemetry/opentelemetry-collector-contrib/internal/version.Version=v${version}" + ]; + + meta = with lib; { + homepage = "https://github.com/open-telemetry/opentelemetry-collector-contrib"; + changelog = "https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v${version}/CHANGELOG.md"; + description = "OpenTelemetry Collector superset with additional community collectors"; + longDescription = '' + The OpenTelemetry Collector offers a vendor-agnostic implementation on how + to receive, process and export telemetry data. In addition, it removes the + need to run, operate and maintain multiple agents/collectors in order to + support open-source telemetry data formats (e.g. Jaeger, Prometheus, etc.) + sending to multiple open-source or commercial back-ends. The Contrib + edition provides aditional vendor specific receivers/exporters and/or + components that are only useful to a relatively small number of users and + is multiple times larger as a result. + ''; + license = licenses.asl20; + maintainers = with maintainers; [ uri-canva jk ]; + }; +} diff --git a/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix new file mode 100644 index 000000000000..1feb290bb137 --- /dev/null +++ b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/default.nix @@ -0,0 +1,52 @@ +{ buildGoModule +, fetchFromGitHub +, lib +, writeScript +}: + +let + otelcontribcol = writeScript "otelcontribcol" '' + echo 'ERROR: otelcontribcol is now in `pkgs.opentelemetry-collector-contrib`, call the collector with `otelcorecol` or move to `pkgs.opentelemetry-collector-contrib`' >&2 + exit 1 + ''; +in +buildGoModule rec { + pname = "opentelemetry-collector"; + version = "0.47.0"; + + src = fetchFromGitHub { + owner = "open-telemetry"; + repo = "opentelemetry-collector"; + rev = "v${version}"; + sha256 = "sha256-1dMdQWV+gxbMc/2iVsB1LCsYxR0bt5AJEvoFq2/KHCg="; + }; + # there is a nested go.mod + sourceRoot = "source/cmd/otelcorecol"; + vendorSha256 = "sha256-ps6fUVg7vhGgy47WTJv/U1qHQ2MGXIWXNZ5Rddo1yQY="; + + preBuild = '' + # set the build version, can't be done via ldflags + sed -i -E 's/Version:(\s*)".*"/Version:\1"${version}"/' main.go + ''; + + ldflags = [ "-s" "-w" ]; + + postInstall = '' + cp ${otelcontribcol} $out/bin/otelcontribcol + ''; + + meta = with lib; { + homepage = "https://github.com/open-telemetry/opentelemetry-collector"; + changelog = "https://github.com/open-telemetry/opentelemetry-collector/blob/v${version}/CHANGELOG.md"; + description = "OpenTelemetry Collector offers a vendor-agnostic implementation on how to receive, process and export telemetry data"; + longDescription = '' + The OpenTelemetry Collector offers a vendor-agnostic implementation on how + to receive, process and export telemetry data. In addition, it removes the + need to run, operate and maintain multiple agents/collectors in order to + support open-source telemetry data formats (e.g. Jaeger, Prometheus, etc.) + sending to multiple open-source or commercial back-ends. + ''; + license = licenses.asl20; + maintainers = with maintainers; [ uri-canva jk ]; + }; +} |