2 releases
| 0.1.5 | May 23, 2023 |
|---|---|
| 0.1.0 | May 15, 2023 |
#860 in Configuration
18KB
137 lines
CINC-Server Exporter
A prometheus exporter for CINC Server and CINC compatible configuration management solutions.
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
About The Project
While working at my current gig I found we were lacking some metrics to gain a deeper visibility in to our infrastructure. I built this exporter to fill some of those gaps.
Getting Started
This project assumes you have cinc-server installed with the default database settings.
Installation
- Switch to the database user
sudo su - opscode-pgsql - pull latest release
wget # automated builds/releases coming soon - run the service
./cinc_server_exporter - test
curl http://localhost:9165/metrics
Development Setup
Recommended prerequesites
- nix
- devenv.sh
- direnv
Building and running
-
Pull latest code
git clone https://github.com/esoterick/cinc_server_exporter.git -
Enter project directory
cd cinc_server_exporter -
Allow direnv and let nix to do it's thing
devenv init -
Update .envrc with any configuration options, most importantly the host= string should be set to the current working directory of the repo plus
.devenv/state/postgreswhich is the default location of where devenv stores the test postgres instance data.export CINC_SERVER_EXPORTER_CONN_STRING="host=$(pwd)/.devenv/state/postgres user=rlambert dbname=opscode_chef" export CINC_SERVER_EXPORTER_INTERVAL="15" -
Allow updated direnv
direnv allow . -
Run test database
devenv up -
Import Test Data
createdb opscode_chef psql -U rlambert -d opscode_chef -f test/data/nodes.sql -
Run exporter
cargo run -
Scrape
curl http://localhost:9165/metrics
Usage
Configuration
There are a handful of options to configure the exporter which is done via the following environment variables.
CINC_SERVER_EXPORTER_CONN_STRING- Postgres connection string to the CINC database. default:host=localhost user=opscode-pgsql dbname=opscode_chefCINC_SERVER_EXPORTER_INTERVAL- Interval to scrape the database in seconds. default:15CINC_SERVER_EXPORTER_LISTEN_ADDR- Listen address for the exporter. default:0.0.0.0CINC_SERVER_EXPORTER_LISTEN_PORT- Listen TCP port for the exporter. default:9164
Available Metrics
Current list of available exported metrics
Exporter Level
cinc_server_exporter_last_updated- THe UNIX timestamp of the last cache update for the cinc_server_exporter
Server Level
cinc_server_node_count- The count of all the nodes stored on the cinc_server
Node Level
cinc_server_node_last_updated- Per node, the UNIX timestamp of the last node update
Axum
axum_http_requests_duration_seconds_bucketaxum_http_requests_duration_seconds_countaxum_http_requests_duration_seconds_sumaxum_http_requests_pendingaxum_http_requests_total
Roadmap
- Add changelog
- Add test data
- Add tests
- Document configuration options
- Add automated builds
- Add release url to docs
See the open issues for a full list of proposed features (and known issues).
Contributing
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.
Contact
Robert J. Lambert III - robert.j.lambert@pm.me Project Link: https://github.com/esoterick/cinc_server_exporter
Acknowledgments
Dependencies
~26–43MB
~575K SLoC