v1.0.142
Observe as a telemetry source
Causely now integrates with Observe to discover the Kubernetes clusters that send data to your Observe tenant, including their nodes, pods, containers, and services. Causely reads this infrastructure, its container and node metrics, and its container logs through the Observe API, so the Mediator doesn't need to run in or have access to those clusters. New clusters are picked up automatically, and container logs from Observe are used as evidence for diagnoses.
Cluster-level scheduling diagnoses
Causely now diagnoses scheduling failures at the cluster level. When pods across many workloads stay Pending because no node has enough unreserved CPU or memory, or because nodes are cordoned during a node pool upgrade, Causely identifies the cluster as the root cause. Before this change, each affected workload was diagnosed separately, which hid the shared capacity problem behind many unrelated-looking Issues. When the scheduler message is not a recognized cluster-wide reason, a general Failed To Schedule diagnosis is shown instead.
Throughput drop reasoning
Causely now reasons about throughput drops as part of its causal model. Alerts that report lower-than-expected traffic on a service, operation, queue, or topic map to Throughput Drop Signals, and for queues and topics the Signal reflects whether producers are sending fewer messages or consumers are receiving fewer. Causely can then infer when a throughput drop explains the other Signals and alerts you are seeing, or which diagnosis explains the drop itself. Before this change, a drop in traffic was hard to place in an investigation because error rate and latency often stayed healthy while work stopped flowing.
Minor Improvements
- Dynatrace container logs: Causely now fetches container logs from Loki, Splunk, or Elasticsearch for containers discovered through Dynatrace.
- Dynatrace discovery: Dynatrace entities are fetched in parallel shards, which reduces discovery time in large environments.
- Log-based diagnoses: The error log that triggered a log-based diagnosis is now always included in its evidence. Query and cache key values echoed in log lines no longer split one log pattern into many.
- Entity name matching: Name matching now ignores underscores, hyphens, and spaces, so names such as
checkout_serviceandcheckout-serviceresolve to the same entity. - Entity labels: Labels are now applied to entities in the Mediator repository.
- Beyla and OTLP attribution: The priority between Beyla and OTLP for entity attributes has been swapped, and attribute ownership can now be reset.
- Service summary and entity health tools:
get_service_summaryandget_entity_healthnow report Issues instead of diagnoses, matching the rest of the product. - Thresholds: Fixed minimum thresholds for request rate and database query duration.
- OpenTelemetry certificate validation: Certificate validation for OpenTelemetry telemetry is now configurable.
- OIDC: Causely now falls back to alternative tenant and user ID claims, so more identity provider configurations work without changes.
- Mediator memory and stability: The Mediator streams its persisted store on load instead of reading it fully into memory, so startup no longer doubles memory use. Memory no longer grows when no remote Mediator is connected, and a crash caused by invalid metric values is fixed.
- GKE ARM nodes: The Mediator now includes default tolerations for GKE ARM nodes.
- GCP C4A: Causely now supports GCP C4A machine types.
- Azure scraper logs: Azure 404 Not Found errors no longer appear in scraper full sync logs.
- Component updates: Beyla is updated to 3.39, and the Causely base image is updated to Alpine 3.24.