- Notifications
You must be signed in to change notification settings - Fork0
Prometheus instrumentation library for Go applications
License
oftenoccur/client_golang
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This is theGo client library forPrometheus. It has two separate parts, one forinstrumenting application code, and one for creating clients that talk to thePrometheus HTTP API.
This library requires Go1.20 or later.
The library mandates the use of Go1.20 or subsequent versions. While it has demonstrated functionality with versions as old as Go 1.17, our commitment remains to offer support and rectifications for only the most recent three major releases.
This repository generally followsSemanticVersioning. However, the API client inprometheus/client_golang/api/… is still considered experimental. Breakingchanges of the API client willnot trigger a new major release. The same istrue for selected other new features explicitly marked asEXPERIMENTAL inCHANGELOG.md.
Features that require breaking changes in the stable parts of the repositoryare being batched up and tracked in thev2milestone. The v2development happens in aseparatebranch for the timebeing. v2 releases off that branch will happen once sufficient stability isreached. In view of the widespread use of this repository, v1 and v2 willcoexist for a while to enable a convenient transition.
Theprometheus directorycontains the instrumentation library. See theguide on the Prometheuswebsite to learn more about instrumenting applications.
Theexamples directorycontains simple examples of instrumented code.
Theapi/prometheus directorycontains the client for thePrometheus HTTP API. It allows youto write Go applications that query time series data from a Prometheusserver. It is still in alpha stage.
Themodel packages has been moved toprometheus/common/model.
Theextraction andtext packages are now contained inprometheus/common/expfmt.
See thecontributing guidelines and theCommunity section of the homepage.
client_golang community is also present on the CNCF Slack#prometheus-client_golang.
To cut a minor version:
- Create a new branch
release-<major>.<minor>on top of themaincommit you want to cut the version from and push it. - Create a new branch on top of the release branch, e.g.
<yourname>/cut-<major>.<minor>.<patch>, - Change the
VERSIONfile. - Update
CHANGELOG(only user-impacting changes to mention). - Create PR, and get it reviewed.
- Once merged, create a release with the
release-<major>.<minor>tag on GitHub with the<version>title. - Announce on the prometheus-announce mailing list, slack and Twitter.
- Merge the release branch back to the
mainusing the "merge without squashing" approach (!).
NOTE: In case of merge conflicts, you can checkout the release branch in a new branch, e.g.
<yourname>/resolve-conflicts, fix the merge problems there, and then do a PR into main from the new branch. In that way, you still get all the commits in the release branch back intomain, but leave the release branch alone.
To cut the patch version:
- Create a branch on top of the release branch you want to use.
- Cherry-pick the fixes from the
mainbranch (or add new commits) to fix critical bugs for that patch release. - Follow steps 3-8 as above.
About
Prometheus instrumentation library for Go applications
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- Go99.5%
- Other0.5%