When teams need the OpenTelemetry Operator for Kubernetes
The OpenTelemetry Operator for Kubernetes manages OpenTelemetry Collectors and, optionally, automatic instrumentation for workloads inside a cluster, using Kubernetes custom resources instead of hand-built manifests for each team. It fits when several teams run services on Kubernetes, each one has wired up traces, metrics and logs in a different way, and a platform team wants one reviewed rollout that it can version, audit and change centrally. If each team still owns its own agent configuration and nobody can say which services send what, the Operator gives the platform team a single place to define those defaults. Confirm first how many clusters are in scope and whether your teams already manage cluster configuration through GitOps, because the Operator's resources are usually handled the same way.
Adopting the Operator starts with a clear picture of what OpenTelemetry covers. OpenTelemetry is an observability framework and toolkit for generating, exporting and collecting traces, metrics and logs. It is vendor- and tool-agnostic and is not an observability backend, so it does not store or visualize data. Your storage and dashboards remain separate tools, and the design work is choosing which backends the Collector exports to, along with who owns those destinations and how long they keep data. Teams that expect the Operator to supply a query interface will be disappointed, so set that expectation with stakeholders before the first cluster is changed. OpenTelemetry is a Cloud Native Computing Foundation project formed by merging OpenTracing and OpenCensus, which is useful context when older instrumentation is still in place.
The Operator's main working parts are custom resources that describe Collector deployments. A Collector resource sets the deployment mode, such as agents running next to workloads or a gateway that receives data from many sources, along with receivers, processors and exporters. Platform teams should decide early which mode each cluster or namespace uses and who may change pipeline definitions. The Target Allocator distributes Prometheus-style scrape targets across Collector instances, so it matters only if your teams depend on scraping metrics from workloads. If it applies, check whether existing Prometheus scrape configuration needs to move and how scrape load will be spread across Collector replicas.
Auto-instrumentation is opt-in. The Operator can inject instrumentation for supported languages, including .NET, Java, Node.js, Python and Go, into workloads that a team has explicitly annotated, which keeps application changes under each team's control. Support can differ by language and runtime version, so confirm coverage for the exact versions your teams run in the current documentation before promising it. The Operator also depends on cert-manager, which issues the certificates used by its webhooks. Install and operate cert-manager as a prerequisite, assign ownership for certificate renewals, and test what happens to admission and injection when cert-manager is unavailable during an upgrade.
Before you commit, make three decisions: which clusters receive the Operator first, who owns the shared Collector configuration and its review process, and which telemetry backends the platform team will support. Ask your team or DeployOpen to confirm the cert-manager version and Kubernetes compatibility against current release notes instead of relying on older guides. A pilot in one non-production cluster with two application teams is a practical way to find gaps in labels, namespaces and resource limits before a wider rollout. Record the rollback path as well: how a faulty pipeline definition is reverted and how quickly affected teams are told.
Operator options and when each one fits
This table compares the four Operator options that shape how telemetry leaves your workloads and reaches the Collector. Read each row for its purpose, the situations where it fits, and what it adds to day-to-day operations. The Collector runs as an agent or a gateway according to the Collector documentation, and auto-instrumentation applies only to workloads you opt in.
| Option | Purpose | When it fits | What it adds to operations |
|---|---|---|---|
| Collector deployment mode | Sets whether the Collector runs next to workloads as an agent or receives data from many sources as a gateway. | Agent for collection close to services. Gateway when many sources send telemetry to one processing tier. | Agent adds per-node capacity to plan. Gateway concentrates pipeline configuration, export credentials and scaling in one tier. |
| Target Allocator | Distributes Prometheus scrape targets across Collector instances. | Prometheus-style scraping must scale across several Collector replicas. | Adds a component to configure and monitor, plus scrape assignments to verify after cluster changes. |
| Auto-instrumentation for .NET, Java, Node.js, Python and Go | Adds language instrumentation to the workloads you select. | Services in these five languages where you want traces without editing application code. Enable per workload. | Adds per-language configuration and version tracking, and a restart step for each opted-in workload. |
| cert-manager | Issues and renews the certificates the Operator needs for its admission webhooks. | Required prerequisite for the Operator. Confirm the supported version in the Operator release notes. | Adds a second controller to install, monitor, back up and upgrade alongside the Operator. |
How the Operator turns Collector custom resources into running pipelines
The Operator reconciles Collector custom resources into Kubernetes workloads and a Collector configuration. Each card below marks one step in that chain, from the resource definition to the rollout, and the team that owns each step.
Resource definition as the entry point
The platform team writes a Collector custom resource that declares the Collector image, the deployment mode and the pipeline configuration. The Operator watches these objects and continuously reconciles the cluster toward them. Confirm the field names and schema against the Operator documentation for the release you run, because the schema changes between Operator releases. Record the Operator and Collector versions in the same change record as the resource.
Workload mode selection
The mode set on the resource determines which Kubernetes workload the Operator creates. The Operator documentation describes Deployment, DaemonSet and StatefulSet modes, but confirm the exact mode names and which ones your Operator version supports. Node-local agents usually fit a DaemonSet, while a central gateway fits a Deployment. Review a StatefulSet carefully before choosing it, because it adds stable pod identity and storage considerations.
Rendered Collector configuration
The Operator converts the pipeline section of the resource into the Collector configuration file that runs inside the pods. Inspect the rendered output in the cluster, since it is the configuration that actually runs. Check that credentials come from Kubernetes secrets and not from plain text in the resource. Review the redaction processor and component list against the OpenTelemetry security guidance for Collector configuration.
Rollout through resource updates
Pipeline changes ship by editing the Collector custom resource, usually through Git and a GitOps tool, and the Operator reconciles the running workload to match. Confirm how each workload mode replaces pods during an update and whether a change causes a restart. Test pipeline changes in a non-production cluster first, and keep the previous resource version available for a fast revert.
Platform team owns pipeline design
The platform team owns the resource definitions, receivers, processors, exporters and the decision about which telemetry leaves the cluster. Route changes to these definitions through the same review and approval path as other platform code. Application teams should not be able to alter export destinations or processors without review, so set access controls on the namespace where the resources live.
Application teams opt in with annotations
Application teams request Collector sidecar or instrumentation behavior by adding annotations or opt-in labels to their own workloads, where the Operator supports this. The platform team defines which annotations are valid and what each one does. Confirm the exact annotation and label keys in the Operator documentation for your version, and document them in the team's onboarding material so each keyword has one meaning.
Using the Target Allocator for Prometheus scraping
The Target Allocator exists to spread Prometheus scrape targets across several OpenTelemetry Collector instances so that scraping keeps up as the number of targets grows. A single Collector running Prometheus receiver scrape jobs works well until the target count, scrape interval or series volume pushes one process past its CPU and memory budget. Before enabling the Target Allocator, decide whether your scrape load genuinely needs distribution or whether one well-sized Collector, with clear scrape configurations and resource limits, will remain adequate for the planning horizon you are designing for.
The decision comes down to load and operational cost. Keeping scraping in a single Collector means one configuration to review, one set of logs to watch and one scaling boundary to monitor. Distributing scraping means the Operator assigns targets to Collector replicas, which adds a second moving part: the allocator must discover targets, compute assignments and keep them consistent as pods come and go. Ask your team to measure current target counts, scrape durations and Collector memory under peak conditions, and to project growth over the period you plan to operate the system. That data, not a general rule, should decide the topology.
Configuration complexity is the first trade-off to plan for. The Target Allocator relies on the Prometheus receiver's scrape configuration, and the Operator needs the Collector custom resource to enable the allocator and to name the Collector deployment mode that suits the workload. Teams often underestimate how much of the existing Prometheus configuration must be translated, reviewed and tested. Service discovery is the second trade-off. The allocator reads targets from Kubernetes discovery roles or from the scrape configuration, so RBAC permissions, ServiceMonitor and PodMonitor resources, and namespace scoping all affect which targets appear. Verify that the service accounts involved can list and watch the resources they need, and confirm that no target is scraped twice or dropped silently.
Support is the third concern, and it depends on your exact Collector version. Receivers and scrape configuration options are not all covered by the allocator to the same degree, and the level of support can change between releases. Before committing, confirm with the Operator and Collector release notes which Prometheus receiver features, scrape settings and target discovery methods your version supports, and test the ones your monitoring depends on in a non-production cluster. Record the version you validated so that upgrades trigger a repeat of that check rather than an assumption.
Plan for failure modes before production. If an allocator or Collector replica is lost, targets must be reassigned without a long gap in metrics, so test pod restarts, scale-up and scale-down events and observe whether assignments converge. Monitor scrape success rates and target distribution across replicas so that an uneven assignment does not hide a saturated instance. Keep the single-Collector configuration as a documented fallback, so that if distribution proves unreliable for your workload, the team can return to a known state while the cause is investigated.
Opt-in auto-instrumentation for .NET, Java, Node.js, Python and Go
The Operator can inject OpenTelemetry instrumentation into workloads for .NET, Java, Node.js, Python and Go, but only where you opt in. Each language carries its own maturity, and the trace and log signals do not all have the same stability, so the work is deciding which workloads get instrumented and confirming what each injection will actually do in your cluster.
Opt-in is set per workload
Injection does not happen cluster-wide by default. Teams annotate specific Deployments or namespaces with an Instrumentation resource reference, so a workload only receives agents after its owner has agreed to it. Plan the annotation model before rollout: decide whether platform teams or application owners set it, how annotations are reviewed in GitOps repositories, and how a workload is removed from injection without a redeploy of the whole namespace.
Trace support across the five languages
The OpenTelemetry status page lists trace APIs and SDKs as stable in most languages, including .NET, Go, Java, JavaScript (the runtime behind Node.js) and Python. That makes traces the most predictable signal to start with. Confirm the Operator's support level for each language, since the status of an SDK and the status of the Operator's injection path are separate questions.
Log SDK maturity varies
Log SDK maturity varies more than trace maturity, and some languages are still in development according to the OpenTelemetry status page. Do not assume that log correlation or log export will behave the same way across all five runtimes. Ask for a per-language list of which signals are in scope, and keep application logging pipelines in place until the signals you rely on are verified in your environment.
Injected instrumentation versions
The Operator injects agent or library versions that you may not have chosen directly. Record the injected instrumentation version for each language, compare it with the version your application images already contain, and check for conflicts where both are present. Pin versions in the Instrumentation resource where the Operator allows it, and review them on every Operator upgrade.
Testing before production rollout
Run injection in a non-production cluster that matches your runtime images, network policies and sidecar constraints. Verify that spans appear in the backend, that service latency and memory stay within the limits your owners accept, and that failed injections do not block pod startup. Document the test results per language so the rollout decision is traceable.
Support ownership and retained evidence
Agree who owns each layer: the Operator and cert-manager prerequisites, the Instrumentation resources, the application annotations and the backend that receives data. Keep the written scope, the test record and the version inventory together so that an auditor or incident responder can see what was instrumented, when and on which version.
Setting up the OpenTelemetry Operator for Kubernetes
This sequence takes a Kubernetes cluster from access checks to a working Collector, verified telemetry in your chosen backend, and one instrumented workload. Each step closes with a check you can run, so the platform team can confirm progress before moving to the next step.
Confirm cluster access and namespace plan
Your platform team confirms that the workstation or deployment pipeline can reach the target cluster with an account that can create custom resource definitions, cluster roles and webhook configurations, since the Operator works at cluster scope. Agree on the namespace for the Operator, a separate test namespace for the first Collector, and where production Collectors will run. Record the Kubernetes version and the distribution you run, then compare them with the compatibility statement in the Operator release you plan to use. Check access with a read-only command, such as listing namespaces, and confirm the Operator's requirements in its documentation before continuing.
Install cert-manager as the prerequisite
The OpenTelemetry Operator relies on admission webhooks, and cert-manager issues the certificates those webhooks use. Install cert-manager with the method your organization approves, and confirm that its version is compatible with the Operator release you plan to install. Verify issuance by creating a temporary self-signed Issuer and Certificate in the test namespace, then wait for the Certificate to report a Ready condition. Delete the test objects afterward. If the Certificate never becomes Ready, review the cert-manager controller logs before you install the Operator.
Install the OpenTelemetry Operator
Install the Operator from the published manifest or Helm chart for the release your team has reviewed, and keep the version pinned in your deployment records. The installation adds the custom resource definitions for the Collector and for auto-instrumentation, along with the controller and its webhooks. Check the rollout by confirming that the Operator deployment reports its replicas as available and that the custom resource definitions for opentelemetry.io exist in the cluster. Then confirm that the admission webhook accepts a test resource. Record the installed version for future upgrades.
Deploy a Collector custom resource in a test namespace
Create an OpenTelemetryCollector resource in the test namespace. Choose the deployment mode that fits the role, either an agent next to workloads or a gateway that receives data from many sources, and define the receivers, processors and exporter for your chosen backend. Store backend credentials in a Kubernetes secret instead of plain configuration, and use the redaction processor where sensitive attributes may appear. Check the result by confirming that the Collector pods are running and that their logs show the pipelines started without configuration errors.
Verify telemetry reaches the chosen backend
Send a test trace or metric through the Collector using a sample workload or a test telemetry generator, and confirm it appears in the backend your organization selected. OpenTelemetry does not store or visualize data, so the check depends on the backend's own query tools. If nothing appears, read the Collector's exporter logs and its internal metrics for failed sends, dropped data or authentication errors. Do not move on until a test signal is visible end to end, because every later step depends on this path working.
Enable the Target Allocator if needed
Enable the Target Allocator only when you need Prometheus-style scraping and want scrape targets distributed across several Collector replicas. Add the allocator settings to the Collector resource, then confirm which ServiceMonitor and PodMonitor resources your environment selects. Check that the allocator reports assigned targets and that each Collector replica scrapes its own subset rather than the full set. If you do not need Prometheus-style scraping, skip this step and record that decision in the design notes.
Opt one workload into auto-instrumentation
Create an Instrumentation resource in the workload's namespace that points to the Collector endpoint, and select the language runtime your workload uses from .NET, Java, Node.js, Python or Go. Add the Operator's documented opt-in annotation to one Deployment's pod template, and confirm the exact annotation for your Operator release before applying it. Restart the Deployment and check that its pods include the injected configuration. Confirm that traces from that workload appear in the backend. Keep the rest of the cluster unchanged until this single workload is verified.
Pinning Collector versions and reading the release cadence
OpenTelemetry Collector releases arrive frequently, so your Operator-managed Collectors will need upgrades on a regular schedule. The recent releases in the project's release history illustrate this: v0.161.0 shipped on September 16, 2026, v0.162.0 on September 29, 2026, and v0.163.0 on October 16, 2026. The gaps between those dates were not identical, so plan your review process around release events rather than a fixed calendar day. Set a recurring owner for reading release notes, and decide in advance which changes trigger an out-of-cycle review, such as a security fix or a removed component.
Pin the Collector version explicitly in the image field of the OpenTelemetryCollector custom resource, and keep that manifest in version control. A floating tag such as latest can change the running Collector without any change to your manifests, so the upgrade would take effect on the next pod restart, outside your change process. Also confirm which Operator release supports the Collector version you choose, because the Operator and the Collector are versioned separately. Ask your team to document who approves each version bump, what evidence they need, and how the pinned version is recorded in your change tickets.
Test every version bump in a non-production cluster that mirrors production receivers, processors, exporters and the Target Allocator configuration. Run representative workloads long enough to observe steady-state behavior, then compare the Collector's own health and resource metrics before and after the change. Check that traces, metrics and logs still reach the backend, that dashboards and alert rules still evaluate, and that no pipeline has silently dropped data. Review the stability level of each component you use, which the project documents in each component's README, and treat any component marked as in development as a higher-risk item during upgrades.
Each release ships signed artifacts, SHA256 checksums and SBOM files, and your supply chain process should verify them before a version enters your registry. Compare the SHA256 checksum of every downloaded artifact against the published value, verify the signatures using the method your security policy requires, and store the SBOM alongside the version record so vulnerability scanning can match its components against advisories. If you build a custom Collector with the Collector Builder, generate and verify the SBOM for that build as well. Confirm the exact signing identities, verification commands and SBOM format in the release notes for the version you deploy, because those details can change between releases.
Securing the OpenTelemetry Operator for Kubernetes
OpenTelemetry's security guidance for the Collector covers how configuration is stored, how connections are encrypted and authenticated, which components are compiled in, which telemetry is redacted, and which receivers are exposed. The Operator turns these choices into Kubernetes resources, so the cards below set out what to decide and check before a Collector receives production telemetry. Work through them before the first production pipeline goes live.
Secure configuration and RBAC scope
The Collector configuration can carry endpoints, tokens and other credentials, so treat it as sensitive. In Kubernetes, the Operator builds Collectors from OpenTelemetryCollector resources, so keep secret values in Kubernetes Secrets that those resources reference. Scope RBAC so that only the platform team can create, patch or delete Collector resources and read the Secrets they use, then check audit logs for changes to both.
Encrypt telemetry in transit
Enable TLS on receivers that accept telemetry from applications and on exporters that send it to backends. Decide where mutual TLS is required so the Collector can confirm the identity of connecting clients. Confirm where certificates come from, how they rotate, and whether cert-manager issues them in your cluster. Test each endpoint with a client that presents no valid certificate and confirm the connection is refused.
Authenticate with OIDC and oauth2client
Authenticator extensions check credentials at the Collector boundary. Use an OIDC-based authenticator on receivers that accept connections from identified clients, so each request carries a token issued by your identity provider. Use the oauth2client extension to attach credentials to requests sent to exporter endpoints. Confirm the extension names, support levels and token lifetimes in the Collector release you deploy.
Bind receivers to localhost deliberately
Since Collector v0.110.0, server components bind to localhost by default. A receiver that must accept telemetry from other pods or nodes needs an explicit bind address, so each exposed port should trace back to a documented decision. For every receiver, record its permitted source networks, the network policy that limits them, and the authenticator in front of it. Test from an unlisted pod that the port is unreachable.
Build only the components you need
The Collector Builder compiles a Collector from a manifest you control, so every receiver, processor, exporter and extension you leave out is code you do not ship. Start from the components your pipelines use, and review each component's stability level in its README. Keep the manifest in version control so a rebuild produces the same set. Release artifacts include signed files, SHA256 checksums and SBOMs, which help you verify the build you deploy.
Redact sensitive attributes before export
Telemetry can carry values that should never leave the cluster, such as authorization headers, personal identifiers in span attributes or tokens in query strings. The redaction processor removes or masks these attributes, so place it early in each pipeline that handles them. Attribute names depend on your instrumentation, so test with sample telemetry from your own applications and confirm every sensitive key is covered.
Limits to confirm in your cluster before rollout
Before you roll out the OpenTelemetry Operator, confirm the limits that the Operator and its Collector depend on instead of assuming them. The first limit is component stability. OpenTelemetry Collector components have mixed stability levels, and each component's README documents its own level, so a receiver or processor you need may be stable while another in the same pipeline is still in development. Read the README for every receiver, processor, exporter and extension in your planned configuration, and record the stability level next to each one in your design document. Treat any component below stable as a decision that needs an owner, a fallback and a plan for upgrades.
Next, confirm which components the Collector distribution you choose actually includes. The Collector releases ship a contrib distribution, and a custom build can be created with the Collector Builder so that only the components you need are compiled in. The OpenTelemetry security guidance recommends building with only the components you need, which reduces the attack surface and the number of dependencies your security team must review. Ask your platform team which distribution the Operator will reference, list the components it contains, and compare that list against your pipeline design. If a component you need is missing, decide whether to add it through a custom build or to change the design.
Confirm version compatibility across three layers: the Operator, the Kubernetes version of each cluster, and cert-manager. The Operator depends on cert-manager to issue certificates for its admission webhooks, so the cert-manager version must be one the Operator release supports. Check the Operator release notes and the Kubernetes version support it declares against every cluster in scope, including non-production clusters, since drift between environments is a common source of failed rollouts. Also confirm who owns cert-manager upgrades and how certificate renewal is monitored, because an expired webhook certificate can block changes to Collector and Instrumentation resources.
Check language support for each auto-instrumentation target before you enable it. Trace APIs and SDKs are stable in most languages, including .NET, Go, Java, JavaScript, Python and others, but log SDK maturity varies more, and several languages still have logs support in development. Auto-instrumentation support differs by language and by library version, so list each application runtime and framework in your estate, map it to the instrumentation the Operator provides, and test the instrumented services in a non-production cluster. Applications outside that mapping will need manual SDK instrumentation or will remain uninstrumented, and your rollout plan should say which.
Confirm the backend's ingestion limits and the network path to it. OpenTelemetry is not an observability backend, so the limits that matter are those of the system that stores your telemetry, such as sustained ingestion rate, burst tolerance, cardinality limits and retention. Ask the backend owner for these limits in writing and size the Collector gateway, batching and retry settings against them. Finally, verify network policy between namespaces. Application pods must reach the Collector endpoints, the Collector must reach the backend, and the Target Allocator must reach the scrape targets, while unrelated namespaces stay isolated. Test each of these paths with your actual policies applied, because a permissive default in a development cluster can hide a blocked path in production.
Questions buyers ask before hiring help with the Operator
What drives the cost of an OpenTelemetry Operator project?
The main drivers are how many clusters you run, how many Collector pipelines you need, how many backends receive data, which languages you instrument, and how much compliance evidence you must produce. Each cluster adds deployment, configuration and testing work, because Collector settings and Target Allocator scraping often differ by environment. Each pipeline adds processors, routing and validation. Each backend adds exporter configuration, credentials and access design. Auto-instrumentation for .NET, Java, Node.js, Python and Go is opt-in per workload, so the number of services and their runtimes often matter more than the number of languages. Compliance evidence, such as configuration records, access reviews and change logs, adds collection and documentation effort. Design, build and handover are one-time work. Upgrades and Operator version changes recur. Ask any quote to itemize these drivers separately so you can see what changes if scope changes.
How long does an OpenTelemetry Operator implementation take?
Duration depends on scope, and no single timeline fits every environment. A test cluster with one backend and one language moves much faster than a multi-cluster rollout with Prometheus scraping, several pipelines and compliance records. The work usually follows a sequence: confirm the design, install the cert-manager prerequisite and the Operator, define Collector custom resources, enable Target Allocator scraping where needed, opt in workloads for auto-instrumentation, then verify and hand over. Delays commonly come from waiting on cluster access, backend credentials, change approvals and decisions about telemetry naming. Ask a provider to show the phases, the dependencies each phase waits on, and which client tasks sit on the critical path. A written scope lets both sides agree on the timeline before work starts.
What does the client need to provide for this work?
Plan to provide cluster access, a backend decision, and named owners for telemetry standards before the build starts. Cluster access should begin in a non-production environment, with permission to install cluster-scoped components such as cert-manager and the Operator. The backend choice determines exporter configuration, storage sizing and who can query the data. Owners for telemetry standards settle attribute names, span and metric conventions, sampling rules and which fields the redaction processor must remove. Without these owners, teams often rebuild configuration after rollout. Also provide a service inventory that lists languages and runtimes, a change window for production, and a security contact who reviews Collector configuration and credentials. Confirm each item in writing so the schedule matches actual availability.
Can an internal team run an OpenTelemetry Operator rollout alone?
Yes, an internal team with Kubernetes and observability skills can do this alone. Installing the Operator, writing Collector custom resources and enabling auto-instrumentation are within reach of platform engineers who already run cluster workloads. The work is easier to underestimate in two areas. Security takes careful handling: storing Collector configuration securely, authenticating receivers and exporters, building only the components you need, and redacting sensitive attributes. Upgrades also need planning. The Collector and Operator release on their own schedules, component stability varies, and each change should be tested against your pipelines before it reaches production. Assigning one internal owner to each area keeps the work visible. Consider outside help when deadlines are tight or when the team cannot spare people for ongoing upgrades.
What does a fixed-scope quote for this work include?
A fixed-scope quote should list the scope, deliverables, assumptions, client responsibilities and timeline in writing before work starts. For this Operator, the list should name the clusters in scope, the Collector deployment modes such as agent or gateway, the Target Allocator and Prometheus targets covered, the languages and workloads included for auto-instrumentation, the backends and exporters, the security review of configuration and credentials, and the verification steps. It should also state exclusions, such as backend deployment, dashboards or changes to application code. Ask how changes are handled, what acceptance means and what handover includes, such as runbooks and configuration records. Ongoing upgrades and support are usually separate and can be arranged as a retainer.
Why does the Target Allocator affect cost and effort?
The Target Allocator distributes Prometheus scrape targets across Collector instances, so it shapes how much design work your metrics pipeline needs. Effort rises with the number of scrape jobs, the ServiceMonitor and PodMonitor definitions in use, and the existing Prometheus configuration that must be translated. A small cluster with few targets needs little tuning. A large cluster needs decisions about how targets are allocated, how labels are mapped and how much load each Collector carries. Ask any provider to inventory existing scrape configurations before quoting, because migrating those rules is often the largest unplanned task. Confirm which allocation approach your chosen version supports, and confirm how the team will test scrape coverage before cutover.
How DeployOpen scopes, delivers and supports this OpenTelemetry work
DeployOpen plans, builds and hands over OpenTelemetry Operator for Kubernetes inside clusters you control, so the Collector custom resources, Target Allocator and auto-instrumentation settings are documented for your team to run. Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
How we scope
- The written scope names which clusters, namespaces and workloads the Operator will manage.
- It lists the Collector modes you need, such as agent or gateway, and the telemetry they receive.
- It records whether Prometheus scraping through the Target Allocator and cert-manager are in or out.
How we build
- Install cert-manager and the Operator first, then check the custom resources before deploying any Collector.
- Keep auto-instrumentation opt-in, enabling it per workload for .NET, Java, Node.js, Python or Go after staging tests.
- Configure Collector authentication, redaction of sensitive attributes and only the components each pipeline needs.
How we hand over
- Deliverables include the Collector custom resource manifests and the pipeline design for each telemetry path.
- Documentation covers install order, the cert-manager dependency, Target Allocator settings and rollback steps.
- Walkthrough sessions take your platform team through upgrades, configuration changes and troubleshooting before sign-off.
How we support
- Ongoing support, Collector and Operator upgrades and continuous testing are available as a retainer.
- Upgrades are checked against release notes, because core Collector components carry mixed stability levels.
- Ask for response times, support hours and on-call coverage to be written into the retainer terms.

