Jul 20, 2023

Abstract collection of monitoring metrics

MetricsAny provides a central location for modules to report monitoring metrics, such as counters of the number of times interesting events have happened, and programs to collect up and send those metrics to monitoring services.

Inspired by LogAny, this module splits the overall problem into two sides. Modules wishing to provide metrics for monitoring purposes can use the use MetricsAny statement to obtain a collector into which they can report metric events. By default this collector doesn’t actually do anything, so modules can easily use it without adding extra specific dependencies for specific reporting.

A program using one or more such modules can apply a different policy and request a particular adapter implementation in order to actually report these metrics to some external system, by using the use MetricsAnyAdapter statement.

This separation of concerns allows module authors to write code which will report metrics without needing to care about the exact mechanism of that reporting as well as to write code which does not itself depend on the code required to perform that reporting.

Checkout these related ports:
  • Zziplib - Library to provide transparent read access to zipped files
  • Zydis - Fast and lightweight x86/x86-64 disassembler library
  • Zycore-c - Support library with platform independent types, macros, etc for Zydis
  • Zthread - Platform-independent object-oriented C++ threading library
  • Zookeeper - Coordination Service for Distributed Applications
  • Zls - Zig LSP implementation + Zig Language Server
  • Zfp - High throughput library for compressed floating-point arrays
  • Zeal - Offline documentation browser
  • Zapcc - C++ caching compiler based on clang
  • Zanata-platform - Web-based translation platform
  • Zanata-cli - Zanata Java command line client
  • Z88dk - Complete Z80/Z180 development kit
  • Z80ex - ZiLOG Z80 CPU emulator library
  • Z80asm - Assembler for the Z80 microprocessor
  • Z80-asm - Z80 assembly code assembler and disassembler