-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Closed
Labels
area-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsfeature-kestrelfeature-yarpThis issue is related to work on yarpThis issue is related to work on yarp
Milestone
Description
Some of the events/counters to add (some may already exist, others may be valuable too, discuss below):
- Connections - These should probably be emitted by default, when the source is enabled (
Informationallevel).ConnectionStartevent & counter - Triggered on a new connection.ConnectionStopevent & counter - Triggered on graceful termination of a connection.ConnectionAbortevent & counter- Triggered when a connection is terminated abnormally.ConnectionRejectevent & counter - Triggered when a connection is terminated because a limit was exhausted.ConnectionTimeOutevent & counter- Triggered when a connection is terminated by the server because it timed out.ConnectionDurationcounter - Measures the length of time a connection is established forConcurrentConnectionscounter - Measures the number of concurrent connections (recorded each time a connection is established/terminated).
- Requests - These should probably be emitted by default, when the source is enabled (Information Level).
RequestStartevent & counter - Triggered when a request is startedRequestStopevent & counter - Triggered when a request is completed (includes response status code)RequestAbortevent & counter - Triggered when a request is terminated abnormallyRequestTimeOutevent & counter - Triggered when a request is times outRequestFailureevent & counter - Triggered when an exception escapes from the middleware pipeline.RequestsSucceededcounter - Counts the number of requests that ended with 2xx-class status codesRequestsRedirectedcounter - Counts the number of requests that ended with 3xx-class status codes (this does include 304 Not Modified, but the 3xx class is called "Redirection" in the spec, and isn't a 304 just a redirection to the cache? :P)RequestsRejectedcounter - Counts the number of requests that ended with 4xx-class status codesRequestsFailedcounter - Counts the number of requests that ended with 5xx-class status codesRequestsUpgradedcounter - Counts the number of requests that ended with the 101 Switching Protocols status code.RequestDurationcounter - Measures the length of time a request takes to process. (May need to be measured in Kestrel and servers because of flushing)
- Network Details - These should definitely be behind a Keyword or Verbose trace level.
RequestBytesReadcounter - Counts the number of bytes read for HTTP requests.ResponseBytesWrittencounter - Counts the number of bytes written for HTTP responses.
It might be worth coordinating across HttpSysServer and IISIntegration to share code. Also, benchmarking the impact of disabled EventSources will be important. Obviously, avoiding regression of benchmarking scenarios is an extremely high priority, we may need to have some tricks ready for that.
See https://gist.github.com/anurse/af1859663ac91c6cf69c820cebe92303 for some guidance on adding EventSources and EventCounters to ASP.NET projects.
Metadata
Metadata
Assignees
Labels
area-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsfeature-kestrelfeature-yarpThis issue is related to work on yarpThis issue is related to work on yarp