ANN: Metrics in Juju 2.0

Casey Marshall casey.marshall at canonical.com
Mon Oct 3 15:22:05 UTC 2016


I’m pleased to announce Juju Metrics, new in Juju 2.0!

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. Charm authors and communities can now collaborate on
figuring out the critical metrics for service assurance and ops, and share
that through the charms.

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 -- possibly a starting
point for deeper analysis.

At a glance, operators can pull the most recent measurements across the
entire model:

$ juju metrics --all
UNIT                TIMESTAMP               METRIC      VALUE
auth-sso/0          2016-09-19T22:14:29Z    users       28
auth-sso/0          2016-09-19T22:14:31Z    tokens      6
ceph-mon/0          2016-09-19T22:15:36Z    gb-usage    5.2711902345
webapp/0            2016-09-19T22:17:57Z    requests    11903
webapp/1            2016-09-19T22:17:52Z    requests    13719

View measurements for specific units or applications:

$ juju metrics webapp/0
UNIT                TIMESTAMP               METRIC      VALUE
webapp/0            2016-09-19T22:17:57Z    requests    13719

$ juju metrics sso-auth
auth-sso/0          2016-09-19T22:14:29Z    users       28
auth-sso/0          2016-09-19T22:14:31Z    tokens      6

How about adding metrics to a charm? With the reactive framework, it’s
quick and easy!


   1.

   Add layer:metrics to your charm’s layer.yaml
   2.

   Declare measurements in your charm’s metrics.yaml


metrics.yaml declares each metric’s type and the command line that measures
it. For example, the hypothetical auth-sso charm in the example above might
declare metrics:

metrics:
 users:
   type: gauge
   description: Number of users
   command: scripts/count_users.py
 tokens:
   type: gauge
   description: Number of active tokens
   command: scripts/count_tokens.py

The command lines given in command: attributes above simply need to write
the current gauge value -- a positive decimal number -- to standard output.
Juju 2.0 will initially support type: gauge metrics for the operational use
cases shown above; others such as type: absolute are experimental, and will
be better supported in Juju 2.1.

I’d like to encourage you to kick the tires on this new feature, and let’s
start measuring things in our charms!

For more information, here are links to documentation:

Metrics, User Guide: https://jujucharms.com/docs/stable/charms-metrics

Metrics, Developer Guide:
https://jujucharms.com/docs/stable/developer-metrics

-Casey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju/attachments/20161003/b2747ca5/attachment.html>


More information about the Juju mailing list