{"id":37675779,"url":"https://github.com/jamesmistry/measuro","last_synced_at":"2026-01-16T12:14:07.268Z","repository":{"id":211340225,"uuid":"106075328","full_name":"jamesmistry/measuro","owner":"jamesmistry","description":"Program metrics in modern C++","archived":false,"fork":false,"pushed_at":"2023-03-24T19:04:18.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2023-12-07T22:33:36.098Z","etag":null,"topics":["cpp","metrics","metrics-gathering","observability"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamesmistry.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-10-07T06:04:17.000Z","updated_at":"2023-12-07T22:33:39.952Z","dependencies_parsed_at":"2023-12-07T22:43:40.938Z","dependency_job_id":null,"html_url":"https://github.com/jamesmistry/measuro","commit_stats":null,"previous_names":["jamesmistry/measuro"],"tags_count":3,"template":null,"template_full_name":null,"purl":"pkg:github/jamesmistry/measuro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmistry%2Fmeasuro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmistry%2Fmeasuro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmistry%2Fmeasuro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmistry%2Fmeasuro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamesmistry","download_url":"https://codeload.github.com/jamesmistry/measuro/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesmistry%2Fmeasuro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","metrics","metrics-gathering","observability"],"created_at":"2026-01-16T12:14:06.255Z","updated_at":"2026-01-16T12:14:07.263Z","avatar_url":"https://github.com/jamesmistry.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Measuro\n=======\n\n.. image:: https://github.com/jamesmistry/measuro/actions/workflows/.ci.yaml/badge.svg\n\nMeasuro: A fast, easy-to-use header library for creating program metrics in \nmodern C++.\n\nComprehensive Measuro documentation - including guidance for developers and\ncode examples - is located at:\n\u003chttps://measuro.readthedocs.io/en/0.2.0/\u003e\n\nKey Features\n------------\n\n- Header-only library written in pure C++14 with no external runtime \n  dependencies\n- An intuitive, thread-safe interface for manipulating numeric, string and \n  boolean metrics\n- Sum numeric metrics together automatically using the special 'sum' metric \n  type\n- Calculate the rate of change of a numeric metric automatically using the \n  special 'rate' metric type\n- Minimise the performance impact of frequent metric updates using built-in \n  rate limiting options\n- Easily output metrics in custom formats using the simple Renderer interface,\n  or use the built-in plain text, JSON and Prometheus renderers\n- Schedule asynchronous metric render operations to automatically write \n  formatted metrics to an output stream at regular intervals\n\nGetting Started\n---------------\n\n**Prerequisites**\n\nTo use Measuro in your application you will need at minimum:\n\n- cmake \u003e= 2.6\n- A fully-compliant C++14 compiler - g++ 6.1 or above recommended. Measuro has \n  not been tested with other compilers (though it will probably be easy to get \n  building in those that have implemented the standard).\n\n  If you are using a version of g++ \u003c 6.1, you will need to supply the \n  ``-std=c++14`` switch to enable C++14 mode.\n- To link against pthread, e.g. -lpthread\n\nIt's recommended that you use the Measuro build system to generate a \ndevelopment package you can install using your system package manager. To do \nthis you will need package building tools such as rpm-build or builddeb.\n\nTo run the Measuro test suite you will need:\n\n- C++14 compiler, as above\n- cmake \u003e= 2.6\n- gtest development package (unit testing framework)\n- valgrind, for dynamic analysis\n- cppcheck, for static analysis\n- Python \u003e= 2.6\n\n**Installing**\n\nIt's recommended that you import Measuro as a sub-module for use in your\nown applications. The Measuro header file can be included by adding the ``src``\ndirectory in the Measuro repository root to your include search path. The header\nfile as pushed to the repository is ready for inclusion.\n\nYou can also generate a development package to install on your \nsystem. To do this on an RPM-based system, from the repository root::\n\n    $ cmake ./ -DCPACK_GENERATOR=RPM\n\nTo do this on a DEB-based system, from the repository root::\n\n    $ cmake ./ -DCPACK_GENERATOR=DEB\n\nThen::\n\n    $ make package\n\nA package file will be generated in the repository root. You can install it\nusing your system's package manager, for example::\n\n    $ sudo yum install measuro-devel-x.y-z.rpm\n\nOr::\n\n    $ sudo dpkg -i measuro-devel-x.y-z.deb\n\nYou can also copy the Measuro header file to your source tree. This is probably\nthe least preferable option. To do this, from the repository root::\n\n    $ cp src/measuro.hpp /your/app/src\n\n**Documentation**\n\nComprehensive Measuro documentation is located at: \n\u003chttps://measuro.readthedocs.io/en/0.2.0/\u003e\n\nTo build the documentation in the Measuro repository locally, from the \nrepository root::\n\n    $ doxygen\n    $ cd docs\n    $ make html\n\nIn-code HTML documentation will be written to ``docs/code/html`` and \nuser/developer HTML documentation will be written to ``docs/build/html``.\n\nRunning the Tests\n-----------------\n\nTo run the static analysis, unit tests and system test, from the \nrepository root::\n\n    $ mkdir build \u0026\u0026 cd build\n    $ cmake ../\n    $ make\n    $ make test\n\nTo run the benchmarking program, from the repository root::\n\n    $ mkdir build \u0026\u0026 cd build\n    $ cmake -DCMAKE_BUILD_TYPE=Release ../\n    $ make measuro_benchmark_exe\n    $ ./build/bin/measuro_benchmark_exe\n\nVersioning\n----------\n\nMeasuro versioning follows the SemVer specification: \u003chttp://semver.org/\u003e\n\nYou can see the tagged Measuro versions at:\n\u003chttps://github.com/jamesmistry/measuro/tags\u003e\n\nLicence\n-------\n\nThis project is licensed under the MIT License - see the LICENSE file.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesmistry%2Fmeasuro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesmistry%2Fmeasuro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesmistry%2Fmeasuro/lists"}