Profound.js Swagger Stats
This module, profoundjs-swagger-stats
, extends swagger-stats package as a dependency-free npm module.
This package is designed to only be used internally by the Profound.js Server Framework.
API Telemetry and APM. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices, based on express routes and Swagger (Open API) specification
This module, profoundjs-swagger-stats
, extends swagger-stats package as a dependency-free npm module.
This package is designed to only be used internally by the Profound.js Server Framework.
All notable changes to this project will be documented in this file.
Dependencies updated
Dependency on deprecated request
has been removed, axios
is used instead
In this major release, swagger-stats fully switches to new UX. More UX settings added, such as multiple color themes for dashboards.
swagger-stats now support data type flattened available in ES 7.X for body of the requests. This way we can store any body payload, and query it efficiently in ES. https://www.elastic.co/guide/en/elasticsearch/reference/current/flattened.html#flattened
basePath
allows to specify base path as needed when Openapi 3.0 spec is used./swagger-stats/ux
[feature] Hapijs support #75 - Example how to use
[bug] Cannot upload to elk and Built-In API Telemetry #46
[bug] Last Errors and Errors tab no populated using FeatherJS #42
[bug] Request Content Length null or undefined #40
[feature] Allow onAuthenticate to be asynchronous #31
[feature] Prevent tracking of specific routes #36
[feature] Support for extracting request body #38
Thanks to DavisJaunzems!
swagger-stats now supports storing details about each API Request/Response in Elasticsearch, so you may use Kibana to perform analysis of API usage over time, build visualizations and dashboards.
Example Kibana dashboards provided in dashboards/elastic6
[feature] Apdex score #10
[feature] Support Authentication for /stats and /metrics #14
[feature] Add label "code" to Prometheus histogram metrics #21
See updated dashboard at Grafana Dashboards
app.use(swStats.getMiddleware({
uriPath: '/myservice',
swaggerSpec:swaggerSpec
}));
$ curl http://<your app host:port>/myservice/stats