Application metrics
Knowing an application's configuration isn’t enough to effectively operate and manage it. Consider that a well-designed application will have as few configurable parameters as possible. As an operator, you may find yourself wanting to know more about the resources that an application in your model consumes and provides -- resources such as:
- Storage GiB used
- Number of user accounts
- Number of recently active users
- Active database connections
Juju Metrics complete the operational picture with application observability; by modeling, sampling and collecting measurements of resources such as these. Juju collects application metrics at a cadence appropriate for taking a model-level assessment of application utilization and capacity planning.
There are many instrumentation and time-series data collection solutions supporting devops. Juju’s metrics complement these fine-grained, lower-level data sources with a model-level overview -- a starting point for deeper analysis.
Using metrics
View the most recent measurements from workloads that collect them with the
juju metrics
command.
View measurements for an entire model with:
juju metrics --all
Measurements from all metered workloads in the model are displayed:
UNIT TIMESTAMP METRIC VALUE webapp/0 2016-09-19T22:17:57Z requests 11903 webapp/1 2016-09-19T22:17:52Z requests 13719 ceph-mon/0 2016-09-19T22:15:36Z gb-usage 5.2711902345 auth-sso/0 2016-09-19T22:14:29Z users 28 auth-sso/0 2016-09-19T22:14:31Z tokens 6
View measurements for specific units:
juju metrics webapp/0
Only webapp/0
measurements are shown:
UNIT TIMESTAMP METRIC VALUE webapp/0 2016-09-19T22:17:57Z requests 13719
View measurements for applications as well:
juju metrics sso-auth
Measurements from all matching units are shown:
auth-sso/0 2016-09-19T22:14:29Z users 28 auth-sso/0 2016-09-19T22:14:31Z tokens 6
Machine readable formats are also supported:
juju metrics auth-sso --format yaml
Producing output ideal for integrating with data analysis and automation systems:
- unit: auth-sso/0 timestamp: 2016-09-29T21:55:54.182Z metric: users value: "30" - unit: auth-sso/0 timestamp: 2016-09-29T21:55:53.319Z metric: tokens value: "7"
What does a charm measure?
The measurements collected by a charm are declared in its metrics.yaml
. For
example:
metrics: users: type: gauge description: Number of users tokens: type: gauge description: Number of active tokens
For a more detailed explanation of metrics.yaml
, refer to the
Metric types section in the developer
documentation.
What else are metrics used for?
Measurements collected by Juju are also sent to Canonical, where they are aggregated across all deployments of the charm for analytics.
This information may be used to improve Juju, and may be shared with the charm developer to better support and improve the charm.
Canonical respects the privacy of its users and will not disclose the specific usage of individual users without prior consent.
You may opt-out of anonymous analytics at any time by setting the model
configuration parameter transmit-vendor-metrics=false
.