{"id":20815131,"url":"https://github.com/bleemeo/glouton","last_synced_at":"2025-05-07T12:10:53.228Z","repository":{"id":37980806,"uuid":"219277220","full_name":"bleemeo/glouton","owner":"bleemeo","description":"Monitoring agent for servers, containers, and applications  🔬","archived":false,"fork":false,"pushed_at":"2025-04-08T08:01:30.000Z","size":12602,"stargazers_count":42,"open_issues_count":1,"forks_count":3,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-08T08:41:00.062Z","etag":null,"topics":["dashboard","docker","golang","graphite","kubernetes","metrics","monitoring","observability","prometheus","prometheus-metrics","statsd"],"latest_commit_sha":null,"homepage":"https://bleemeo.com/glouton","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bleemeo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-03T09:23:13.000Z","updated_at":"2025-04-08T07:42:54.000Z","dependencies_parsed_at":"2023-12-16T09:46:46.205Z","dependency_job_id":"08131cb7-dd4c-4d14-92aa-b07d467793e0","html_url":"https://github.com/bleemeo/glouton","commit_stats":null,"previous_names":[],"tags_count":97,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleemeo%2Fglouton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleemeo%2Fglouton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleemeo%2Fglouton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bleemeo%2Fglouton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bleemeo","download_url":"https://codeload.github.com/bleemeo/glouton/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252873949,"owners_count":21817714,"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":["dashboard","docker","golang","graphite","kubernetes","metrics","monitoring","observability","prometheus","prometheus-metrics","statsd"],"created_at":"2024-11-17T21:19:32.079Z","updated_at":"2025-05-07T12:10:53.205Z","avatar_url":"https://github.com/bleemeo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n   \u003cimg src=\"assets/logo_glouton.svg\" alt=\"Glouton\" height=\"300\"/\u003e\n\u003c/p\u003e\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/bleemeo/glouton)](https://goreportcard.com/report/github.com/bleemeo/glouton)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/bleemeo/glouton/blob/master/LICENSE)\n![Platform](https://img.shields.io/badge/platform-linux%20%7C%20windows%20%7C%20macos-informational)\n[![Docker Image Version](https://img.shields.io/docker/v/bleemeo/glouton)](https://hub.docker.com/r/bleemeo/glouton/tags)\n[![Docker Image Size](https://img.shields.io/docker/image-size/bleemeo/glouton)](https://hub.docker.com/r/bleemeo/glouton)\n\n**Glouton** is a monitoring agent that makes observing your infrastructure easy. Glouton retrieves metrics from **node_exporter** and multiple **telegraf inputs** and expose them through a **Prometheus endpoint** and a **dashboard**. It also automatically discovers your [services](#automatically-discovered-services) to retrieve relevant metrics.\n\nGlouton is the agent used in the **Bleemeo cloud monitoring solution**. Deploying a **robust, scalable monitoring solution** can be time consuming. At Bleemeo, we focus on making users life **easier**. Check out the solution we offer on our [website](https://bleemeo.com) and try it now for free!\n\n\u003cp align=\"center\"\u003e\n   \u003cimg src=\"assets/diagram.drawio.png\" alt=\"Architecture\"/\u003e\n\u003c/p\u003e\n\n## Features\n\n- [**Automatic discovery and configuration of services**](#automatically-discovered-services) to generate checks and metrics\n- Can be used as the main **[Prometheus endpoint](#metrics-endpoint)** for another scrapper\n- Support **[Nagios checks](https://go.bleemeo.com/l/custom-service-check), [NRPE](https://go.bleemeo.com/l/agent-configuration-nagios-nrpe) and [StatsD](https://go.bleemeo.com/l/doc-statsd)** metrics ingester\n- **Kubernetes native:** create metrics and checks for pods\n- Monitor your printers and network devices with [**SNMP**](https://go.bleemeo.com/l/network-monitoring-installation)\n- **[JMX support](https://go.bleemeo.com/l/java-monitoring)** to monitor your Java applications.\n- Integrated **web dashboard**\n- Support [pushing metrics](#mqtt) to an external **[MQTT](https://mqtt.org/) broker**\n\n\u003cp align=\"center\"\u003e\n   \u003cimg src=\"assets/dashboard.png\" alt=\"Dashboard\"/\u003e\n\u003c/p\u003e\n\n### Automatically discovered services\n\nGlouton automatically detects and generates metrics for your services. Supported services include **Apache**, **Cassandra**, **Redis**, **Elasticsearch**, **Nginx**, **PostgreSQL**, and many others. The full list of services and generated metrics can be found [here](https://go.bleemeo.com/l/services-metrics).\n\n### Metrics endpoint\n\nA metrics endpoint is available on port http://localhost:8015/metrics by default (this can be configured [here](https://go.bleemeo.com/l/agent-configuration-web-server)). This endpoint can be scrapped by Prometheus for example to retrieve the metrics and show them in Grafana.\n\nA docker compose file is available to quickly setup a full monitoring stack. It includes Grafana, Glouton and a Prometheus configured to scrap Glouton's metrics endpoint.\n\n```sh\n# For Linux\n(cd examples/prometheus; docker-compose up -d)\n# For MacOS\n(cd examples/prometheus_mac; docker-compose up -d)\n```\n\nThen go to the Grafana dashboard at http://localhost:3000/d/83ceCuenk/, and log \nin with the user \"admin\" and the password \"password\".\n\n### Push metrics to MQTT\n\nGlouton can periodically push metrics to an external MQTT broker.\n\nA docker compose file is available to show a working monitoring setup with a Glouton pushing points\nto MQTT. [SquirrelDB Ingestor](https://github.com/bleemeo/squirreldb-ingestor) is used to receive the metrics from MQTT and to write them to\n[SquirrelDB](https://github.com/bleemeo/squirreldb), a scalable timeseries database. This setup \nuses [NATS](https://nats.io/) as the broker, any other broker will work but we prefer NATS for its scalability.  \n\n```sh\n(cd examples/mqtt; docker-compose up -d)\n```\n\nThen go to the Grafana dashboard at http://localhost:3000/d/83ceCuenk/, and log \nin with the user \"admin\" and the password \"password\". You might have to wait a \nlittle before seeing data on the graph.\n\nMore details are available on [SquirrelDB Ingestor](https://github.com/bleemeo/squirreldb-ingestor) on how to use authenticated MQTT\nconnections and how this setup can be scaled for high availability.\n\nYou can use your own ingestor if you want, the messages sent to MQTT are encoded in JSON and\ncompressed with zlib. Glouton sends its messages to the topic `v1/agent/fqdn/data` with `fqdn` \nreplaced by the host FQDN (`.` are replaced by `,` in the FQDN because NATS doesn't support `.` \nin MQTT topics). Here is an example of a MQTT message:\n```json\n[\n   {\n      \"labels_text\": \"__name__=cpu_used\",\n      \"time_ms\": 1665479613948,\n      \"value\": 46.8,\n   }\n]\n```\n\n## Install\n\nGlouton can be installed with Docker, Kubernetes, on Windows or as a native Linux package.\nIf you use Glouton with the Bleemeo solution, you should follow the [documentation](https://go.bleemeo.com/l/agent-installation).\n\n### Docker\n\nA docker image is provided to install Glouton easily.\n\n```sh\ndocker run -d --name=\"bleemeo-agent\" \\\n    -v /var/lib/glouton:/var/lib/glouton -v /var/run/docker.sock:/var/run/docker.sock -v /:/hostroot:ro \\\n    -e  GLOUTON_BLEEMEO_ENABLE='false' --pid=host --net=host \\\n    --cap-add SYS_PTRACE --cap-add SYS_ADMIN bleemeo/bleemeo-agent\n```\n\n### Docker compose\n\nThe docker compose will run Glouton with jmxtrans (a JMX proxy which queries the JVM over JMX and sends \nmetrics over the graphite protocol to Glouton).\n\nTo use jmxtrans, two containers will be run, one with Glouton and one with jmxtrans and a shared volume between\nthem will allow Glouton to write the jmxtrans configuration file.\n\n```sh\ndocker-compose up -d\n```\n\n### Other platforms\n\nIf you are not a Bleemeo user, disable the Bleemeo connector in `/etc/glouton/conf.d/30-install.conf`:\n```yaml\nbleemeo:\n   enable: false\n```\n\nTo install Glouton as a native package on Linux, or to install it on Windows or Kubernetes, check out the [documentation](https://go.bleemeo.com/l/agent-installation). Note that this documentation is made for users of the Bleemeo Cloud solution, but it also works without a Bleemeo account if you skip adding the credentials to the config.\n\n\n## Configuration\n\nThe full configuration file with all available options is available [here](https://go.bleemeo.com/l/agent-configuration).\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbleemeo%2Fglouton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbleemeo%2Fglouton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbleemeo%2Fglouton/lists"}