RuntimeTools / SwiftMetrics

Swift Application Metrics instruments the Swift runtime for performance monitoring, providing the monitoring data programatically via an API or visually with an Eclipse Client.
https://developer.ibm.com/swift/monitoring-diagnostics/application-metrics-for-swift/
Other
156 stars 50 forks source link

Kitura-specific monitoring #5

Open tobespc opened 7 years ago

tobespc commented 7 years ago

Raised from

https://github.com/IBM-Swift/SwiftMetrics/issues/21

tobespc commented 7 years ago

closing as parent is closed

mattcolegate commented 7 years ago

Re-opening as I don't think we addressed any of the issues in the parent

mattcolegate commented 7 years ago

From David Jones: "On the 'standard stuff that would be of interest to 90% of people', at least from my perspective: basic statistics about the usage of various facilities of Kitura. In other words, to have a basic dashboard of "How is my Kitura server configured, and how is it currently being used". For example: Routing: My application defines 10 routes (URLs). How frequently is each route driven? What is the distribution of payload sizes (received / sent) and processing times for a route? Logging: Is it enabled (+ at what level?) Where are logs being written? At the moment, I think we only support stdout ... but in the future this might be more useful. Could we even get access to the logs? Errors: How frequently does my application respond to an erroneous request? Are there persistent offenders (for example, IP addresses which are generating a lot of bogus traffic, or URLs that are frequently requested but not handled) Load: How many clients are connected? How long has a client been connected? How many requests has he made? What is the average / max response time back to that client?

... just some ideas, I appreciate some may have non-trivial overhead, so might be nice to have a 'trace levels' style facility where you can choose (it would have to be at build time) what level of information was available. I can imagine you might have a server running with high levels of detail (and the associated performance impact) when testing / debugging."

I expect this would be best implemented using Kitura Probes, which means having a SwiftMetrics Probe Framework.