Skip to content

Additional Metrics for System.Net.Http #88384

Open
@antonfirsov

Description

@antonfirsov

Opening a separate issue for the HTTP part of #79371, also including requests from #79459. We should eventually implement the Metrics counterpart of all System.Net.Http EventCounters.

Implemented as part of #84978

  • requests-failed, current-requests
  • http(11|20|30)-connections-current-total

Note that Metrics variants of requests-failed, current-requests will be semantically different from EventCounters since we need to comply with the OTel specification which wants us to record the counters until "headers receieved" and exclude response buffering in case HttpCompletionOption.ResponseContentRead is passed. See the discussion in open-telemetry/opentelemetry-specification#3520.

Event counters not discussed in #84978

  • requests-started
  • requests-started-rate
  • requests-failed-rate
  • http(11|20|30)-requests-queue-duration

Additional requests from #79459; we don't have existing counters for these

  • number of idle connections
  • average idle connection time
  • number of connections evicted from pool due to idle timeout
  • number of connection timeouts
  • average time to connect
  • queue length
  • number of http 2 keep alive pings which didn't receive a response
  • average response time of http 2 keep alive pings

Regarding tags, there is a wish in #79459:

Ideally these metrics would be available per FQDN:Port combination, broken down by type (i.e. HTTP1.1/HTTP2) and there would be some way to track which http client each pool belongs to.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-System.Net.HttpenhancementProduct code improvement that does NOT require public API changes/additions

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions