{"adoption": {"forks": 649, "observed_at": "2026-08-28T04:05:30.943637+00:00", "stars": 1748}, "canonical_url": "https://ross.abutalabs.com/products/opentelemetry-operator", "card": {"archived": false, "artifact_type": "service", "description": "Kubernetes Operator for OpenTelemetry Collector", "domain": ["monitoring", "cloud-computing"], "enriched": true, "function": ["monitoring", "tracing", "deployment", "container-orchestration", "infrastructure-as-code"], "health_score": 100, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["open-telemetry/opentelemetry-operator"], "name": "open-telemetry/opentelemetry-operator", "platform": ["go", "cloud", "self-hosted"], "pushed_at": "2026-08-26T17:45:06+00:00", "repo": "open-telemetry/opentelemetry-operator", "stars": 1748, "tags": ["opentelemetry", "kubernetes-operator", "observability", "auto-instrumentation", "opamp", "target-allocator", "crd", "devops", "containers", "kubernetes", "docker"], "topics": ["opentelemetry", "opentelemetry-collector", "kubernetes-operator", "hacktoberfest"], "urls": [], "use_cases": ["deploy and manage OpenTelemetry Collector instances on Kubernetes", "automatically inject OpenTelemetry auto-instrumentation into application pods", "run collectors as sidecars, daemonsets, or deployments via CRDs", "distribute Prometheus scrape targets across collector replicas", "remotely configure collectors with OpAMP", "upgrade and scale telemetry pipelines declaratively"], "what_it_is": "A Kubernetes Operator written in Go that manages the lifecycle of OpenTelemetry Collector instances and auto-instrumentation of workloads via custom resource definitions. It also provides components like the Target Allocator for distributing Prometheus scrape targets and an OpAMP Bridge for remote collector management.", "when_to_avoid": ["you are not running Kubernetes", "you prefer manually deploying collectors with plain manifests or Helm", "you need a standalone collector outside a cluster", "you only need client-side SDK instrumentation without a collector"], "when_to_choose": ["you run workloads on Kubernetes and want managed OpenTelemetry Collectors", "you want zero-code auto-instrumentation injected into pods", "you need declarative CRD-based telemetry pipeline configuration", "you want Prometheus target discovery balanced across collector instances"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/opentelemetry-operator", "repo": "open-telemetry/opentelemetry-operator", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.943637+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:28:54.459953+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b20f5ef9fae19c48f286a15d70f92a564f428ba8ee1d20d5883a716510f39c03", "fetched_at": "2026-08-28T04:05:30.943637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-telemetry/opentelemetry-operator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 98}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2450, "days_push": 7, "days_rel": 16, "gap_med": 12, "n_releases_24m": 50}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}