diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 1811c5ec5613..2d2eec1763cf 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -452,6 +452,20 @@
directly.
+
+
+ The existing pkgs.opentelemetry-collector
+ has been moved to
+ pkgs.opentelemetry-collector-contrib to
+ match the actual source being the contrib
+ edition. pkgs.opentelemetry-collector is
+ now the actual core release of opentelemetry-collector. If you
+ use the community contributions you should change the package
+ you refer to. If you don’t need them update your commands from
+ otelcontribcol to
+ otelcorecol and enjoy a 7x smaller binary.
+
+
pkgs.noto-fonts-cjk is now deprecated in
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index f22204801b89..448f302afe67 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -138,11 +138,20 @@ In addition to numerous new and upgraded packages, this release has the followin
- MultiMC has been replaced with the fork PolyMC due to upstream developers being hostile to 3rd party package maintainers. PolyMC removes all MultiMC branding and is aimed at providing proper 3rd party packages like the one contained in Nixpkgs. This change affects the data folder where game instances and other save and configuration files are stored. Users with existing installations should rename `~/.local/share/multimc` to `~/.local/share/polymc`. The main config file's path has also moved from `~/.local/share/multimc/multimc.cfg` to `~/.local/share/polymc/polymc.cfg`.
+
- The terraform 0.12 compatibility has been removed and the `terraform.withPlugins` and `terraform-providers.mkProvider` implementations simplified. Providers now need to be stored under
`$out/libexec/terraform-providers/////_/terraform-provider-_v` (which mkProvider does).
This breaks back-compat so it's not possible to mix-and-match with previous versions of nixpkgs. In exchange, it now becomes possible to use the providers from [nixpkgs-terraform-providers-bin](https://github.com/numtide/nixpkgs-terraform-providers-bin) directly.
+- The existing `pkgs.opentelemetry-collector` has been moved to
+ `pkgs.opentelemetry-collector-contrib` to match the actual source being the
+ "contrib" edition. `pkgs.opentelemetry-collector` is now the actual core
+ release of opentelemetry-collector. If you use the community contributions
+ you should change the package you refer to. If you don't need them update your
+ commands from `otelcontribcol` to `otelcorecol` and enjoy a 7x smaller binary.
+
+
- `pkgs.noto-fonts-cjk` is now deprecated in favor of `pkgs.noto-fonts-cjk-sans`
and `pkgs.noto-fonts-cjk-serif` because they each have different release
schedules. To maintain compatibility with prior releases of Nixpkgs,
diff --git a/pkgs/tools/misc/opentelemetry-collector/contrib.nix b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
new file mode 100644
index 000000000000..b89868460e29
--- /dev/null
+++ b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
@@ -0,0 +1,45 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+ pname = "opentelemetry-collector-contrib";
+ version = "0.43.0";
+
+ src = fetchFromGitHub {
+ owner = "open-telemetry";
+ repo = "opentelemetry-collector-contrib";
+ rev = "v${version}";
+ sha256 = "sha256-ktzP+ugG2sa0v8B1Zp47o8Bmpxv98zQyFyWf9QfQRoQ=";
+ };
+ # proxy vendor to avoid hash missmatches between linux and macOS
+ proxyVendor = true;
+ vendorSha256 = "sha256-0E52YSWlq1ebHA3kR9Qo/6ufug9R+z1cSD9AfbN/Mi0=";
+
+ subPackages = [ "cmd/otelcontribcol" ];
+
+ 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/pkgs/tools/misc/opentelemetry-collector/default.nix b/pkgs/tools/misc/opentelemetry-collector/default.nix
index 6c83d72976d9..e0abe89359ed 100644
--- a/pkgs/tools/misc/opentelemetry-collector/default.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/default.nix
@@ -1,30 +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.40.0";
+ version = "0.43.1";
src = fetchFromGitHub {
owner = "open-telemetry";
- repo = "opentelemetry-collector-contrib";
+ repo = "opentelemetry-collector";
rev = "v${version}";
- sha256 = "sha256-YFgAS4WReyMnzb6FOeRUXHf1LUgknH5gWObiZNKMbv8=";
+ sha256 = "sha256-hYhJv5LbebUA9Sp8/admfKWXBoOVvXdr3Mzc3qG8GlM=";
};
+ # there is a nested go.mod
+ sourceRoot = "source/cmd/otelcorecol";
+ vendorSha256 = "sha256-w5uyAVZ1TrurD4CEWTTk1fWmdlQn8eAFWZrNpISB5Rk=";
- vendorSha256 = "sha256-DTZLYF3BoQGou59KaL56pkxySsoQ0xeJ5aF/SkewziE=";
- proxyVendor = true;
+ preBuild = ''
+ # set the build version, can't be done via ldflags
+ sed -i -E 's/Version:(\s*)".*"/Version:\1"${version}"/' main.go
+ '';
- CGO_ENABLED = 0;
+ ldflags = [ "-s" "-w" ];
- subPackages = [ "cmd/otelcontribcol" ];
+ postInstall = ''
+ cp ${otelcontribcol} $out/bin/otelcontribcol
+ '';
meta = with lib; {
homepage = "https://github.com/open-telemetry/opentelemetry-collector";
- description = "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 = [ maintainers.uri-canva ];
+ maintainers = with maintainers; [ uri-canva jk ];
};
}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 489a86948918..74dd9628c366 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8542,7 +8542,12 @@ with pkgs;
opae = callPackage ../development/libraries/opae { };
- opentelemetry-collector = callPackage ../tools/misc/opentelemetry-collector { };
+ opentelemetry-collector = callPackage ../tools/misc/opentelemetry-collector {
+ buildGoModule = buildGo117Module;
+ };
+ opentelemetry-collector-contrib = callPackage ../tools/misc/opentelemetry-collector/contrib.nix {
+ buildGoModule = buildGo117Module;
+ };
opentracing-cpp = callPackage ../development/libraries/opentracing-cpp { };