{"id":28578319,"url":"https://github.com/digitalocean/prometheus-client-c","last_synced_at":"2025-06-11T01:09:32.771Z","repository":{"id":41203355,"uuid":"216633296","full_name":"digitalocean/prometheus-client-c","owner":"digitalocean","description":"A Prometheus Client in C","archived":false,"fork":false,"pushed_at":"2024-08-01T17:56:07.000Z","size":1419,"stargazers_count":161,"open_issues_count":42,"forks_count":85,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-01-15T00:19:21.832Z","etag":null,"topics":["c","prometheus"],"latest_commit_sha":null,"homepage":null,"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/digitalocean.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-21T18:05:24.000Z","updated_at":"2024-12-20T16:52:10.000Z","dependencies_parsed_at":"2024-06-20T15:43:08.128Z","dependency_job_id":"62c42b5e-f946-4ab1-84c7-2c0ca635414a","html_url":"https://github.com/digitalocean/prometheus-client-c","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fprometheus-client-c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fprometheus-client-c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fprometheus-client-c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fprometheus-client-c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalocean","download_url":"https://codeload.github.com/digitalocean/prometheus-client-c/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fprometheus-client-c/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259178542,"owners_count":22817388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["c","prometheus"],"created_at":"2025-06-11T01:09:31.660Z","updated_at":"2025-06-11T01:09:32.749Z","avatar_url":"https://github.com/digitalocean.png","language":"C","funding_links":[],"categories":["Developing","C"],"sub_categories":["Dependencies"],"readme":"# prometheus-client-c\n\n[![Build Status](https://github.com/digitalocean/prometheus-client-c/workflows/CI/badge.svg)](https://github.com/digitalocean/prometheus-client-c/actions)\n\nThis project provides shared libraries for instrumenting software via [Prometheus](https://prometheus.io)\n\n* libprom - Provides the core API. Resources such as counters, gauges, histograms, and\n  collector registries can be found here. This library has no dependencies on third-party\n  libraries; however, it does rely on pthreads native to POSIX systems.\n* libpromhttp - Provides a simple web handler to expose Prometheus metrics for scraping.\n  This library has a dependency on libmicrohttpd.\n\nDocumentation can be found\n[at the documentation site](https://digitalocean.github.io/prometheus-client-c/)\nand an example can be found under example/. Check under the releases tab for tarballs and debian installers\n\n## Versioning\n\nThis project generally follows [semantic versioning](https://semver.org). For each version you can find a corresponding\nrelease under the releases type. Do not expect the master branch to maintain alignment with the latest release. It may\ncontain changes not yet released.\n\n## Development\n\nThe only development dependencies required to get started are Docker, Make and Bash. Navigate to the root fo this\nproject directory and execute `make`. This process will build the development container, build libprom and libpromhttp,\nrun the unit tests and execute the smoke tests.\n\nThe stages of the development workflow are automated via `auto` which can be found in the root of this project directory.\nExecute `bash auto -h` for information regarding the different subcommands. Information for each subcommand can be\nobtained by executing `bash auto CMD -h`.\n\n## Contributing\n\nThank you for your interest in contributing to prometheus-client-c! There two primary ways to get involved with this\nproject: documentation and code modifications.  In either case, the process is identical.\n\n### General Rules for Contribution\n\n* Open An Issue: Before opening a PR or starting any work, open an issue.  In the issue, describe the problem you\nwant to fix and how you would like to fix it.  The level of detail should match the relative size of the proposed change.\nThis will allow us to work together to determine the best path forward towards a sound solution.\n\n* Open a Pull Request: After you have gotten confirmation on your proposed change it's time to get to work! Create a\nfork and make all of your updates in said fork. For each commit, you must prefix the commit with the associated issue.\nFor example: `#12 - Fixing typo in documentation`. Before opening a pull request, review the commit log for your fork.\nIf any of your commit messages are extraneous, squash said commits using `git rebase`. Once you're happy with your\nchanges and your commit log, open a pull request against the master branch.\n\n* Engage in the Code Review: After submitting your pull request, there may be some requests for changes.  If you have\nany questions or concerns, please do not hesitate to make them known.  The code review process is a bidirectional\ncommunication process so please do not be shy. Speak up!\n\n### Coding Rules for Contribution\n\n* Please follow the general coding style already present in the project.\n  * clang-format your code by executing `bash auto format` before submitting a PR.\n  * Every struct must have a constructor function and destructor function.\n  * Every method must pass a pointer to the target struct as the first argument.\n  * Every function that is not a constructor or destructor and does not return a value must return an int to signify\n    success with 0 and failure with non-zero.\n  * Every function name must begin with the library name. For example, all functions within prom must begin with `prom_`\n    and all functions within promhttp must begin with `promhttp_`.\n  * All variables must be underscore delimited (i.e. snake-case).\n  * All macros must be captilalized.\n  * Every pointer reference must be assigned a NULL value after it is destroyed either by prom_free or its\n    corresponding destructor function.\n* All new functions must introduce a corresponding suite of unit tests.\n* If you add functionality to an existing function, be sure to add a corresponding unit test to verify correctness.\n\n## Misc\n\n* Language level: C11\n* Operating Systems:\n  * Ubuntu 20.04\n  * Ubuntu 18.04\n  * Ubuntu 16.04\n  * Debian Buster\n  * Debian Stretch\n  * Debian Jessie\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalocean%2Fprometheus-client-c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalocean%2Fprometheus-client-c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalocean%2Fprometheus-client-c/lists"}