Includes metrics available on the /metrics HTTP endpoint in the standard ic-metrics-encoder format.
Progress:
[x] Refactor metric system to represent individual Ethereum RPC methods and service hostnames
[x] Use the same HTTP request logic for both JSON-RPC and Candid-RPC endpoints
[x] Add traits to resolve metric labels and values based on data type
[x] Add getMetrics canister method for simplified programmatic access
[x] Test expected behavior
Note that the metrics are currently not stored in stable memory, so redeploying the canister will reset the metrics. This is intentional to allow breaking changes over time and will also make it quicker to recognize problems with newly deployed canisters. Total statistics can be computed from downstream monitoring services by integrating over all increases in metric numbers. Suggestions are welcome for different ways to approach persistence between upgrades.
Includes metrics available on the
/metrics
HTTP endpoint in the standardic-metrics-encoder
format.Progress:
getMetrics
canister method for simplified programmatic accessNote that the metrics are currently not stored in stable memory, so redeploying the canister will reset the metrics. This is intentional to allow breaking changes over time and will also make it quicker to recognize problems with newly deployed canisters. Total statistics can be computed from downstream monitoring services by integrating over all increases in metric numbers. Suggestions are welcome for different ways to approach persistence between upgrades.
Resolves #86.