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>
- Update C symbols to the module_name_SymbolName style.
- Rename and move the token alias.
- Update pw_metric/metric.h to refer to pw::tokenizer::Token instead of
uint32_t.
Change-Id: I75c5df8a690b9c29472a8e64c6d82aa4fefca6aa
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/17160
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
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>
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>
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>
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>