DEBUG left on.
One runtime switch exports every debug line, and what it prints, to a backend that bills by volume.
Maestro: telemetry governance at the source, for Java
Maestro reads your compiled JARs and proposes which business methods to trace and what they may capture. Your team locks that plan for each environment. Maestro builds it for the stock OpenTelemetry Java agent, with no source changes, and holds inside each JVM which log records may leave.
The trial needs a card at signup. To talk first, write to chris@oteligence.com.
Building the system of record for what Java services emit.
Held for each environment
Telemetry goes from your JVMs to your collector and backend, never through Oteligence.
The risk today
One runtime switch exports every debug line, and what it prints, to a backend that bills by volume.
What a service traces, captures or logs changes with a setting or a deploy, without a decision.
When it changes, nobody can say who changed it, on which service, or for how long.
Built today, hosted and in your private cloud
Traces
Logs
These cover the OpenTelemetry log export of Java services under a lock. Logs a separate shipper reads from stdout are outside them.
Evidence
The demonstration
On a production-flagged environment with an INFO floor, an engineer sets a logger to DEBUG at runtime. The console fills, the export carries none of it, your backend receives a span recording the change, and the lock record names who set the floor.
Before deploy, the same rule. The GitHub Action fails a build whose deployment files set DEBUG, and passes it at INFO.
How it works
Upload compiled JARs or WARs, or a source archive through the CLI. Maestro reads each service and the calls between services.
Pick a goal: debug latency, track errors, business flows or general visibility. A deterministic engine scores every method and proposes what to trace, with the reason for each.
A person locks the plan for each environment, with its captures and log policy. Large or sensitive production changes wait for their recorded confirmation. Promote and roll back.
Maestro builds and signs the bundle below. Your pipeline downloads and deploys it, or on Kubernetes the OpenTelemetry Operator rolls it out.
The GitHub Action checks every downloaded file against its build record and signature, and your repository against the environment's log policy. The bundle's verifier checks a sample of your own telemetry.
Files you inspect, keep and deploy with your own tools. Generated extension JARs add nothing to the price.
One per service: the locked selections, captures and log floor, for the stock OpenTelemetry Java agent.
Tail sampling that keeps every error and slow trace. Masking of secret-named keys and card-shaped values. Health-check traces dropped. Sized from your peak requests per second, with a load-balancing tier for more than one sampling replica. Request, error and latency metrics computed before sampling.
Every locked method: built, attached to the services that load its library, or refused with the reason.
Who locked the plan, any production confirmation, each JAR's SHA-256, and the hash of every file in the build.
What the extensions may emit and what the collector removes, with a script you run on a sample of your collector's output.
Spans and bytes per request, extension off and on, from your own staging samples.
The source of each extension, to read and review beside the JAR.
How it fits
Pipelines and backend rules act after a record leaves the service; Maestro decides before deploy and holds the decision inside the JVM, in front of the pipeline you already run.
Covered services run the stock OpenTelemetry Java agent with the Maestro extension in place of your APM's own agent, exporting to New Relic, Datadog (through its Agent or directly), Dynatrace, Honeycomb, Jaeger or any OTLP endpoint over gRPC or HTTP. On Kubernetes, roll out through the OpenTelemetry Operator, with no change to a service's image.
Oteligence runs the control plane, signs every Maestro build and publishes the public key in the GitHub Action's README. It receives no telemetry.
The whole platform on one Linux VM you operate, from a weekly installation bundle (Docker Compose). Nothing in it is configured to contact Oteligence. It uses your own S3-compatible bucket and fetches three public helper images from Docker Hub once, unless you load them first. Backend images are signed and each carries an SBOM. It signs every build with a key it creates. Accounts are local; single sign-on is not available on the VM yet.
Security and data
| Topic | Hosted | Private cloud |
|---|---|---|
| Where it runs | Amazon Web Services, region us-east-2. Each organization has its own database schema and storage bucket. | One Linux VM you operate, with your own bucket and database. |
| What it holds | Compiled JARs or WARs, or a source archive through the CLI; the analyses; service and environment names and selections; locks and the audit trail; members' names and emails; and, with the GitHub Action, each CI run's repository, branch, commit, user and run address. | The same, on your machine and in your bucket. |
| Telemetry | Receives none. Spans and logs go from the agent to the collector and backend you configure. | Receives none, and nothing in the installation is configured to contact Oteligence. |
| Protection | Encrypted in transit (HTTPS only, TLS 1.2 or 1.3) and at rest. API keys are stored only as a digest. | The installer refuses a bucket that allows public access, keeps no versions or has no default encryption. |
| Accounts | Sign-in through Clerk. Payment through Stripe, whose own form takes the card number, so it never reaches Oteligence. | Local accounts with passwords an administrator sets. Single sign-on is not available on the VM yet. |
| Deletion | Environment delete is self-serve: that environment's JARs, generated extensions and version history are removed. Cancelling during the trial removes the organization's hosted data. Billing records and audit events are kept. | The same environment delete in the app. You hold the database, the bucket and the machine. |
| Attestations | Oteligence does not hold a SOC 2 report. The security pack answers a review's first questions. | Signed backend images, an SBOM for each image, and a SHA-256 for every file in the bundle. |
The extensions and configuration are files you keep. They name no Oteligence address and run on the stock OpenTelemetry Java agent, so your services keep running and exporting. Remove the extension from the agent's settings and the service runs the stock agent.
Data handling, retention and deletion, attestations, and answers to a review's first questions, from chris@oteligence.com.
Pricing
Data volume, hosts and seats do not change the price.
Hosted, self-service
$10per JAR per month
Billed for 12 months up front. For example, 12 JARs locked in one environment is $1,440, charged on day 31.
Enterprise and private cloud
Order form on request
For Maestro inside your own network, or a purchase through your procurement process.
Unsure how your build maps to JARs? Write to chris@oteligence.com and we will count it with you.
Questions
No source changes. You add the extension and its configuration to the OpenTelemetry Java agent you deploy, through your own pipeline or, on Kubernetes, the OpenTelemetry Operator.
Keep it. Pipelines and backend rules act after a record leaves the service. Maestro acts in the JVM, at the moment of the change, tied to the lock and the code, with a debug window that expires. It covers the Java services under a lock and does not replace your pipeline.
The log floor, the level-change record, the log inventory and the CI check still work. The generated collector's meter, masking and sampling apply only if you run it.
No. Covered services run the stock OpenTelemetry Java agent with the Maestro extension. Remove the extension and the service runs the stock agent.
Logs a separate shipper reads from stdout are outside the floor. If the agent also exports them over OpenTelemetry, that export is a second copy: turn it off for those services and keep the level-change record, the log inventory and the CI check, or move the services to the OpenTelemetry path, where the floor applies.
On our eight-JAR test application (agent 2.32.0, JDK 21, one laptop run), the extension added half a millisecond or less at p50, p95 and p99 to orders of about 125 ms, over the stock agent alone. Measure it on your own staging; the worksheets in every bundle compare spans and bytes per request with the extension off and on.
No. Spans and logs go from the agent to the collector and backend you configure. The hosted service receives what you upload, your names and selections, and each CI run's details; the private-cloud installation is not configured to contact Oteligence at all.
No. A deterministic engine scores your methods and your people lock the plan. No model scores, selects or applies anything.
We email you before the first charge. If you do nothing, the 12-month term starts on day 31 and is charged up front. Cancel in the app before day 31 and you pay nothing: access ends and the account's hosted data is removed, so download your bundles first. Files you downloaded keep running without us.
Talk to us
30 minutes with your platform, engineering and security leads: the demonstration, the evidence a pilot must produce on your staging, and our security pack.
A pilot runs on a VM you operate, outside production, and ends against three measurements on your services:
Or write to chris@oteligence.com