Closed ismaelhamed closed 2 years ago
These are the definitions for all of our metrics
internal sealed class BuiltInMetrics
{
private BuiltInMetrics(Meter meter)
{
MsgsReceived = meter.CreateCounter<long>(MessagesReceived, MessagesUnit,
"Message-processing throughput by actor type and message type.");
MailboxDepth = meter.CreateHistogram<long>(MetricNames.MailboxDepth, MessagesUnit,
"Number of unprocessed messages waiting inside actor's mailbox.");
DeadLettersReceived = meter.CreateCounter<long>(DeadLetters, MessagesUnit,
"Undeliverable messages sent to /deadletters by message type.");
UnhandledMessagesReceived = meter.CreateCounter<long>(UnhandledMessages,
MessagesUnit,
"Messages that were received by a live actor, but actor was not programmed to handle them, by actor / message type.");
LogMessages = meter.CreateCounter<long>(MetricNames.LogMessages, LogUnits,
"Akka.NET logging events by loglevel.");
ActorRestarts = meter.CreateCounter<long>(MetricNames.ActorRestarts, RestartUnit,
"Actor restarts by type.");
ActorsCreated = meter.CreateCounter<long>(MetricNames.ActorsCreated, CreatedUnit,
"Actors started by type.");
ActorsStopped = meter.CreateCounter<long>(MetricNames.ActorsStopped, StoppedUnit,
"Actors stopped by type.");
MessageReceiveLatency = meter.CreateHistogram<long>(MessageLatency, LatencyUnit,
"Akka.NET message processing latency by actor / message type.");
}
There have been some major changes to the Prometheus exporters recently, so I'm wondering if this is an upstream breaking change in the OpenTelemetry project. We've run into some of those lately: https://github.com/open-telemetry/opentelemetry-dotnet/issues/3591
I'll perform some upgrades in our projects and see if I can get to the bottom of it.
Also, I see in your issue submission that you're using the OTel Collector? So is it the OTel collector that exposes the metrics, eventually, to Prometheus?
Trying to upgrade to https://www.nuget.org/packages/OpenTelemetry.Exporter.Prometheus.AspNetCore/1.4.0-alpha.2 to see if this reproduces the issue...
Attempted to reproduce this issue here: https://github.com/petabridge/Petabridge.Phobos.Web/pull/156
Here is what I get from /metrics
# HELP akka_messages_recv_msgs Message-processing throughput by actor type and message type.
# TYPE akka_messages_recv_msgs counter
akka_messages_recv_msgs{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",messagetype="Akka.IO.Tcp+Bound"} 1 1663611056911
akka_messages_recv_msgs{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",messagetype="string"} 1 1663611056911
akka_messages_recv_msgs{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",messagetype="string"} 1 1663611056911
akka_messages_recv_msgs{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",messagetype="string"} 1 1663611056911
# HELP akka_actor_mailbox_depth_msgs Number of unprocessed messages waiting inside actor's mailbox.
# TYPE akka_actor_mailbox_depth_msgs histogram
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="0"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="5"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="10"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="25"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="50"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="75"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="100"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="250"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="500"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="1000"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="+Inf"} 1 1663611056911
akka_actor_mailbox_depth_msgs_sum{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 0 1663611056911
akka_actor_mailbox_depth_msgs_count{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="0"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="5"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="10"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="25"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="50"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="75"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="100"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="250"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="500"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="1000"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="+Inf"} 1 1663611056911
akka_actor_mailbox_depth_msgs_sum{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 0 1663611056911
akka_actor_mailbox_depth_msgs_count{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="0"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="5"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="10"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="25"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="50"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="75"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="100"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="250"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="500"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="1000"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="+Inf"} 1 1663611056911
akka_actor_mailbox_depth_msgs_sum{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 0 1663611056911
akka_actor_mailbox_depth_msgs_count{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="0"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="5"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="10"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="25"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="50"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="75"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="100"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="250"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="500"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="1000"} 1 1663611056911
akka_actor_mailbox_depth_msgs_bucket{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",le="+Inf"} 1 1663611056911
akka_actor_mailbox_depth_msgs_sum{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 0 1663611056911
akka_actor_mailbox_depth_msgs_count{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
# HELP akka_logs_events Akka.NET logging events by loglevel.
# TYPE akka_logs_events counter
akka_logs_events{akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console",level="info"} 4 1663611056911
# HELP akka_actor_created_starts Actors started by type.
# TYPE akka_actor_created_starts counter
akka_actor_created_starts{actortype="Petabridge.Phobos.Web.ConsoleActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
akka_actor_created_starts{actortype="Petabridge.Phobos.Web.RouterForwarderActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
akka_actor_created_starts{actortype="Petabridge.Cmd.Host.Default.Connectivity.UptimeMonitorActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
akka_actor_created_starts{actortype="Petabridge.Cmd.Remote.Actors.GlobalConnectionHistory",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
akka_actor_created_starts{actortype="Petabridge.Cmd.Remote.Actors.GlobalStatusActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
akka_actor_created_starts{actortype="Petabridge.Cmd.Host.AkkaCmdListener",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
akka_actor_created_starts{actortype="Petabridge.Phobos.Web.ChildActor",akka_address="akka.tcp://ClusterSys@desktop-12k1162:4055",cluster_role="console"} 1 1663611056911
Even with the new 1.4.0-alpha* packages it looks like Prometheus is exposing properly typed metrics - so this leads me to wonder if this is an issue caused by the OTel Collector not propagating types correctly to Prometheus. How are you exporting your metrics currently?
We use the OpenTelemetry.Exporter.OpenTelemetryProtocol
to export the metrics and send them locally to the instance of the OTel Collector installed in each VM (as an agent). It is then the OTel Collector which exposes the /metrics
endpoint for Prometheus in this case.
IMO this has several advantages:
/metrics
endpoint anymore.I'm not familiar with k8s yet, but I'll see if I can configure the Petabridge.Phobos.Web
to use the OTel Collector instead.
@Aaronontheweb I've created a PR with a reproducible. Metrics from the OTel Collector are exposed at http://localhost:8889/metrics
Thanks @ismaelhamed - I'll look into this.
@ismaelhamed I have found the problem,
The unit translation/normalization was deliberately turned off because it is still in alpha stage. The documentation that points to the actual problem is here, which points to this documentation page
To turn the feature on, according to the documentation (as of the writing of this comment):
Warning
This feature must be enabled with feature gate
pkg.translator.prometheus.NormalizeName
. It is disabled by default (alpha stage).$ otelcol --config=config.yaml --feature-gates=pkg.translator.prometheus.NormalizeName
To turn the feature on in your Petabridge.Phobos.Web
PR, change this line in the otel-collector:
section:
command: ["--config=/etc/otel-collector-config.yml", "--feature-gates=pkg.translator.prometheus.NormalizeName"]
@Arkatufus thank you for taking the time to investigate this and pointing me to that feature (I totally missed that in the documentation). But still the metrics the OTel Collector produces are different than the ones expected for the dashboards, so they still appear empty.
A couple of examples:
akka_actor_stopped_stops_total
instead of akka_actor_stopped_stops
, or akka_logs_events_total
instead of akka_logs_events
Looks like this name-mangling is a side effect of the OTel Collector's Prometheus exporter @ismaelhamed
Why the metrics have different names when directly exported to Prometheus vs. exported via the OTel Collector seems like an OpenTelemetry bug / inconsistency.
I'm also wondering if the Collector messes with the temporality of the metrics too - even if we could make the Phobos Grafana perform an XOR query against Prometheus for different metric names (direct export vs. collector) that system wouldn't work if the numbers were aggregated differently.
I'm also wondering if the Collector messes with the temporality of the metrics too - even if we could make the Phobos Grafana perform an XOR query against Prometheus for different metric names (direct export vs. collector) that system wouldn't work if the numbers were aggregated differently.
I really hope not, because that's basically the whole selling point for having an open standard.
Why the metrics have different names when directly exported to Prometheus vs. exported via the OTel Collector seems like an OpenTelemetry bug / inconsistency.
The Prometheus Normalization plugin states this: This module provides centralized functions to convert OpenTelemetry metrics to Prometheus-compliant metrics.
But I guess not. Otherwise the OTel Collector would've matched the metrics names, unless the metrics in Phobos itself don't quite follow the Prometheus conventions by the book.
We'll edit the dashboards ourselves and we'll see.
Thanks again guys!
But I guess not. Otherwise the OTel Collector would've matched the metrics names, unless the metrics in Phobos itself don't quite follow the Prometheus conventions by the book.
Do you have any non-Phobos metrics to compare against? Any of the built-in ASP.NET ones, for instance?
I can't see anything from aspnet
, but for the ones from http-client
is the same: subtle differences like the OTel Collector using milliseconds
instead ms
.
ORIGINAL
# HELP http_client_duration_ms measures the duration of the outbound HTTP request
# TYPE http_client_duration_ms histogram
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="0"} 0 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="5"} 0 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="10"} 18 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="25"} 29 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="50"} 30 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="75"} 30 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="100"} 30 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="250"} 31 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="500"} 31 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="1000"} 31 1663855490166
http_client_duration_ms_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",le="+Inf"} 31 1663855490166
http_client_duration_ms_sum{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201"} 440.96700000000004 1663855490166
http_client_duration_ms_count{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201"} 31 1663855490166
OTEL COLLECTOR
# HELP http_client_duration_milliseconds measures the duration of the outbound HTTP request
# TYPE http_client_duration_milliseconds histogram
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="0"} 0
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="5"} 0
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="10"} 0
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="25"} 1
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="50"} 3
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="75"} 3
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="100"} 3
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="250"} 4
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="500"} 4
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="1000"} 4
http_client_duration_milliseconds_bucket{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web",le="+Inf"} 4
http_client_duration_milliseconds_sum{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web"} 285.7075
http_client_duration_milliseconds_count{http_flavor="1.1",http_method="POST",http_scheme="http",http_status_code="201",instance="phobos-web",job="Petabridge.Phobos.Web"} 4
I think this must be an OTel Collector bug - there's no reason why the metrics should have a different name when reported directly to Prometheus vs. going through the collector first. They're all OTel metrics objects after all!
Agree, there's something off.
Akka: 1.4.40 Phobos: 2.0.6 OpenTelemetry: 1.4.0-alpha.2 Prometheus: 2.37.1 OpenTelemetry-Collector: 0.60.0
@Aaronontheweb I finally figured out why the metrics that we receive from Phobos in Prometheus are different than the ones expected by the Grafana dashboards (hence the dashboards are always empty). When compared with the
Petabridge.Phobos.Web
application, it looks like we are missing theunit
:Our system akka_actor_created akka_actor_mailbox_depth_bucket akka_actor_mailbox_depth_count akka_actor_mailbox_depth_sum akka_cluster_members akka_cluster_reachable akka_logs ...
Petabridge.Phobos.Web akka_actor_created_starts akka_actor_mailbox_depth_msgs_bucket akka_actor_mailbox_depth_msgs_count akka_actor_mailbox_depth_msgs_sum akka_cluster_members_members akka_cluster_reachable_members akka_logs_events ...
Are you guys doing some transformations we are not aware of?
Also notice that we are deploying on bare metal (no k8s).