Commit Graph

5 Commits

Author SHA1 Message Date
Paul Mathieu
2182c6688c pw_metric: add _STATIC variants
This adds PW_METRIC_STATIC and PW_METRIC_GROUP_STATIC, which do the same
as their non-_STATIC siblings, except that the object that they create
gets a `static` storage.

This can be useful, e.g. to have metrics inside of functions, when the
function itself is to be instrumented.

This CL also removes an extraneous stringification in the metric and
group names, which resulted in double double quotes.

Ah, and I also implemented PW_METRIC_GROUP with 3 parameters, which was
referenced in the documentation but not formally implemented.

Change-Id: Ife06f3759c49cb5cc15a571334e65b8f48051a6c
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/16980
Commit-Queue: Paul Mathieu <paulmathieu@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
2020-08-31 18:26:09 +00:00
Keir Mierle
612880968d pw_metric: Update PW_METRIC() API usage in docs
A previous API change to add an explicit name parameter to the PW_METRIC
and PW_METRIC_GROUP macros didn't update all uses in the docs.

Change-Id: I2a4193b3b670c3e4896ae03784078700546e5e28
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/16342
Commit-Queue: Keir Mierle <keir@google.com>
Reviewed-by: Ewout van Bekkum <ewout@google.com>
2020-08-20 22:57:27 +00:00
Keir Mierle
9b51cdf629 pw_metric: Add size report
This adds a size report for pw_metric, not including the RPC service.
The report shows the impact of having a few metrics, of dumping, and of
adding more metrics.

At this time, the flash usage on Cortex-M4 is unexpectedly large due to
the creation of large static constructors. This will require followup
CLs to address.

This CL also moves a few inlined methods from the .h file into the .cc
to reduce code size.

Change-Id: Ie0cb041a6e1e5e77c921e9078adea2eaabccdd43
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/16300
Commit-Queue: Keir Mierle <keir@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
2020-08-20 22:46:37 +00:00
Keir Mierle
f4dfd87bb5 pw_metric: Metric RPC service
This adds a metric RPC service, which exposes a metric tree. The user
selects which metrics to expose. The metric tree is sent via streaming
RPC to enable streaming potentially large sets of metrics.

Change-Id: Ib308995b8f7f91ce439ca42fe298f802d4bdf7e3
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/16003
Commit-Queue: Keir Mierle <keir@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
Reviewed-by: Ewout van Bekkum <ewout@google.com>
2020-08-20 21:48:27 +00:00
Keir Mierle
45fa7859d8 pw_metric: Create new module
This starts the metrics module, which will eventually offer facilities
to track metrics about a system, like average memory use, or other
performance counters.

Change-Id: I2b9dd089cbc2a15af295661fda6f8a6c30353d45
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/15441
Commit-Queue: Keir Mierle <keir@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Fateh Singh <fsingh@google.com>
Reviewed-by: Zoltan Szatmary-Ban <szatmz@google.com>
2020-08-14 02:38:03 +00:00