{"id":14972008,"url":"https://github.com/apache/hertzbeat-helm-chart","last_synced_at":"2025-10-19T11:32:38.038Z","repository":{"id":249782635,"uuid":"832494314","full_name":"apache/hertzbeat-helm-chart","owner":"apache","description":"Apache HertzBeat(incubating) is a real-time monitoring system with agentless, performance cluster, prometheus-compatible, custom monitoring and status page building capabilities.","archived":false,"fork":false,"pushed_at":"2024-11-07T15:10:42.000Z","size":127,"stargazers_count":4,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-01-30T10:34:35.148Z","etag":null,"topics":["alerting","cloud","database","devops","grafana","linux","metrics","monitor","monitoring","mysql","notifications","observability","prometheus","self-hosted","server","status","status-page","uptime","uptime-monitoring","zabbix"],"latest_commit_sha":null,"homepage":"https://charts.hertzbeat.apache.org/","language":"Smarty","has_issues":false,"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/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-23T06:25:15.000Z","updated_at":"2024-11-07T15:10:58.000Z","dependencies_parsed_at":"2024-08-12T02:27:59.784Z","dependency_job_id":"68f5f053-3e2a-4732-b80f-c2b22e41935b","html_url":"https://github.com/apache/hertzbeat-helm-chart","commit_stats":{"total_commits":35,"total_committers":6,"mean_commits":5.833333333333333,"dds":"0.19999999999999996","last_synced_commit":"1c4aee270b359761e46894ec91f7a6bc8803f8a5"},"previous_names":["apache/hertzbeat-helm-chart"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fhertzbeat-helm-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fhertzbeat-helm-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fhertzbeat-helm-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fhertzbeat-helm-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/hertzbeat-helm-chart/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237125434,"owners_count":19259285,"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":["alerting","cloud","database","devops","grafana","linux","metrics","monitor","monitoring","mysql","notifications","observability","prometheus","self-hosted","server","status","status-page","uptime","uptime-monitoring","zabbix"],"created_at":"2024-09-24T13:46:11.423Z","updated_at":"2025-10-19T11:32:38.032Z","avatar_url":"https://github.com/apache.png","language":"Smarty","readme":"# Helm Chart for Apache HertzBeat\n\n[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/hertzbeat)](https://artifacthub.io/packages/search?repo=hertzbeat)\n\n\u003cdiv class=\"artifacthub-widget\" data-url=\"https://artifacthub.io/packages/helm/hertzbeat/hertzbeat\" data-theme=\"light\" data-header=\"true\" data-stars=\"true\" data-responsive=\"false\"\u003e\u003cblockquote\u003e\u003cp lang=\"en\" dir=\"ltr\"\u003e\u003cb\u003ehertzbeat\u003c/b\u003e: An open-source, real-time monitoring system with custom monitoring, high performance cluster and agentless capabilities.\u003c/p\u003e\u0026mdash; Open in \u003ca href=\"https://artifacthub.io/packages/helm/hertzbeat/hertzbeat\"\u003eArtifact Hub\u003c/a\u003e\u003c/blockquote\u003e\u003c/div\u003e\u003cscript async src=\"https://artifacthub.io/artifacthub-widget.js\"\u003e\u003c/script\u003e\n\n\n## What is Apache HertzBeat?\n\n[Apache HertzBeat](https://github.com/apache/hertzbeat) is an easy-to-use, open source, real-time observability system with agentless, high performance cluster, prometheus-compatible, offers powerful custom monitoring and status page building capabilities.\n\n### Features\n\n* Combines **monitoring, alarm, and notification** features into one platform, and supports monitoring for web service, program, database, cache, os, webserver, middleware, bigdata, cloud-native, network, custom and more.\n* Easy to use and agentless, web-based and with one-click monitoring and alerting, zero learning curve.\n* Makes protocols such as `Http, Jmx, Ssh, Snmp, Jdbc, Prometheus` configurable, allowing you to collect any metrics by simply configuring the template `YML` file online. Imagine being able to quickly adapt to a new monitoring type like K8s or Docker simply by configuring online with HertzBeat.\n* Compatible with the `Prometheus` ecosystem and more, can monitoring what `Prometheus` can monitoring with few clicks on webui.\n* High performance, supports horizontal expansion of multi-collector clusters, multi-isolated network monitoring and cloud-edge collaboration.\n* Provides flexible alarm threshold rules and timely notifications delivered via  `Discord` `Slack` `Telegram` `Email` `Dingtalk` `WeChat` `FeiShu` `Webhook` `SMS` `ServerChan`.\n* Provides powerful status page building capabilities, easily communicate the real-time status of your service to users.\n\n\n\u003e HertzBeat's powerful customization, multi-type support, high performance, easy expansion, and low coupling, aims to help developers and teams quickly build their own monitoring system.\n\n## Helm Chart for HertzBeat\n\nThis [Helm](https://github.com/kubernetes/helm) chart installs [HertzBeat](https://github.com/apache/hertzbeat) in a Kubernetes cluster. Welcome to [contribute](https://github.com/apache/hertzbeat/tree/master/script/helm) to Helm Chart for HertzBeat.\n\n## Prerequisites\n\n- Kubernetes cluster 1.20+\n- Helm v3.2.0+\n\n## Installation\n\n### Add Helm repository\n\n```bash\nhelm repo add hertzbeat https://charts.hertzbeat.apache.org/\nhelm repo update\n```\n\n### Configure the chart\n\nThe following items can be set via `--set` flag during installation or configured by editing the `values.yaml` directly (need to download the chart first).\n\n#### Configure how to expose HertzBeat service\n\n- **Ingress**: The ingress controller must be installed in the Kubernetes cluster.\n- **ClusterIP**: Exposes the service on a cluster-internal IP. Choosing this value makes the service only reachable from within the cluster.\n- **NodePort**: Exposes the service on each Node’s IP at a static port (the NodePort). You’ll be able to contact the NodePort service, from outside the cluster, by requesting `NodeIP:NodePort`.\n- **LoadBalancer**: Exposes the service externally using a cloud provider’s load balancer.\n\n#### Configure the external URL\n\nThe external URL for HertzBeat core service is used to:\n\n1. populate the docker/helm commands showed on portal\n2. populate the token service URL returned to docker client\n\nFormat: `protocol://domain[:port]`. Usually:\n\n- if service exposed via `Ingress`, the `domain` should be the value of `expose.ingress.hosts`\n- if service exposed via `ClusterIP`, the `domain` should be the value of `expose.clusterIP.name`\n- if service exposed via `NodePort`, the `domain` should be the IP address of one Kubernetes node\n- if service exposed via `LoadBalancer`, set the `domain` as your own domain name and add a CNAME record to map the domain name to the one you got from the cloud provider\n\nIf HertzBeat is deployed behind the proxy, set it as the URL of proxy.\n\n#### Configure how to persist data\n\n- **Disable**: The data does not survive the termination of a pod.\n- **Persistent Volume Claim(default)**: A default `StorageClass` is needed in the Kubernetes cluster to dynamically provision the volumes. Specify another StorageClass in the `storageClass` or set `existingClaim` if you already have existing persistent volumes to use.\n\n#### Configure the other items listed in [configuration](#configuration) section\n\n### Install the chart\n\nInstall the HertzBeat helm chart with a release name `my-release`:\n```bash\nhelm install hertzbeat hertzbeat/hertzbeat\n```\n\n## Uninstallation\n\nTo uninstall/delete the `hertzbeat` deployment:\n```bash\nhelm uninstall hertzbeat\n```\n\n## Configuration\n\nThe following table lists the configurable parameters of the HertzBeat chart and the default values.  \nConfig Parameter via `--set`, eg: `--set expose.type=NodePort`\n\n| Parameter                             | Description                                                                                                                                                                                                     | Default         |\n|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|\n| **Expose**                            |                                                                                                                                                                                                                 |                 |\n| `expose.type`                         | How to expose the service: `Ingress`, `ClusterIP`, `NodePort` or `LoadBalancer`, other values will be ignored and the creation of service will be skipped.                                                      | `Ingress`       |\n| `expose.clusterIP.name`               | The name of ClusterIP service                                                                                                                                                                                   | `hertzbeat`     |\n| `expose.clusterIP.annotations`        | The annotations attached to the ClusterIP service                                                                                                                                                               | {}              |\n| `expose.clusterIP.ports.port`         | The service port HertzBeat listens on when serving HTTP                                                                                                                                                         | `80`            |\n| `expose.nodePort.name`                | The name of NodePort service                                                                                                                                                                                    | `hertzbeat`     |\n| `expose.nodePort.ports.port`          | The service port HertzBeat listens on when serving HTTP                                                                                                                                                         | `80`            |\n| `expose.nodePort.ports.nodePort`      | The node port HertzBeat listens on when serving HTTP                                                                                                                                                            | `30002`         |\n| `expose.loadBalancer.IP`              | The IP of the loadBalancer. It only works when loadBalancer supports assigning IP                                                                                                                               | `\"\"`            |\n| `expose.loadBalancer.ports.port`      | The service port HertzBeat listens on when serving HTTP                                                                                                                                                         | `80`            |\n| `expose.loadBalancer.sourceRanges`    | List of IP address ranges to assign to loadBalancerSourceRanges                                                                                                                                                 | []              |\n| **Manager**                           |                                                                                                                                                                                                                 |                 |\n| `manager.account.username`            | The hertzbeat account username                                                                                                                                                                                  | `admin`         |\n| `manager.account.password`            | The hertzbeat account password                                                                                                                                                                                  | `hertzbeat`     |\n| `manager.resources`                   | The [resources] to allocate for container                                                                                                                                                                       | undefined       |\n| `manager.nodeSelector`                | Node labels for pod assignment                                                                                                                                                                                  | `{}`            |\n| `manager.tolerations`                 | Tolerations for pod assignment                                                                                                                                                                                  | `[]`            |\n| `manager.affinity`                    | Node/Pod affinities                                                                                                                                                                                             | `{}`            |\n| `manager.podAnnotations`              | Annotations to add to the nginx pod                                                                                                                                                                             | `{}`            |\n| **Collector**                         |                                                                                                                                                                                                                 |                 |\n| `collector.replicaCount`              | The replica count                                                                                                                                                                                               | `1`             |\n| `collector.autoscaling.enable`        | Is enable auto scaling collector replicas                                                                                                                                                                       | `1`             |\n| `collector.resources`                 | The [resources] to allocate for container                                                                                                                                                                       | undefined       |\n| `collector.nodeSelector`              | Node labels for pod assignment                                                                                                                                                                                  | `{}`            |\n| `collector.tolerations`               | Tolerations for pod assignment                                                                                                                                                                                  | `[]`            |\n| `collector.affinity`                  | Node/Pod affinities                                                                                                                                                                                             | `{}`            |\n| `collector.podAnnotations`            | Annotations to add to the nginx pod                                                                                                                                                                             | `{}`            |\n| **Database**                          |                                                                                                                                                                                                                 |                 |\n| `database.timezone`                   | The database system timezone                                                                                                                                                                                    | `1`             |\n| `database.rootPassword`               | The database root user password                                                                                                                                                                                 | `1`             |\n| `database.persistence.enabled`        | Enable the data persistence or not                                                                                                                                                                              | `true`          |\n| `database.persistence.resourcePolicy` | Setting it to `keep` to avoid removing PVCs during a helm delete operation. Leaving it empty will delete PVCs after the chart deleted. Does not affect PVCs created for internal database and redis components. | `keep`          |\n| `database.persistence.existingClaim`  | Use the existing PVC which must be created manually before bound, and specify the `subPath` if the PVC is shared with other components                                                                          |                 |\n| `database.persistence.storageClass`   | Specify the `storageClass` used to provision the volume. Or the default StorageClass will be used (the default). Set it to `-` to disable dynamic provisioning                                                  |                 |\n| `database.persistence.subPath`        | The sub path used in the volume                                                                                                                                                                                 |                 |\n| `database.persistence.accessMode`     | The access mode of the volume                                                                                                                                                                                   | `ReadWriteOnce` |\n| `database.persistence.size`           | The size of the volume                                                                                                                                                                                          | `5Gi`           |\n| `database.persistence.annotations`    | The annotations of the volume                                                                                                                                                                                   |                 |\n| `database.resources`                  | The [resources] to allocate for container                                                                                                                                                                       | undefined       |\n| `database.nodeSelector`               | Node labels for pod assignment                                                                                                                                                                                  | `{}`            |\n| `database.tolerations`                | Tolerations for pod assignment                                                                                                                                                                                  | `[]`            |\n| `database.affinity`                   | Node/Pod affinities                                                                                                                                                                                             | `{}`            |\n| `database.podAnnotations`             | Annotations to add to the nginx pod                                                                                                                                                                             | `{}`            |\n| **TSDB**                              |                                                                                                                                                                                                                 |                 |\n| `tsdb.timezone`                       | The database system timezone                                                                                                                                                                                    | `1`             |\n| `tsdb.persistence.enabled`            | Enable the data persistence or not                                                                                                                                                                              | `true`          |\n| `tsdb.persistence.resourcePolicy`     | Setting it to `keep` to avoid removing PVCs during a helm delete operation. Leaving it empty will delete PVCs after the chart deleted. Does not affect PVCs created for internal database and redis components. | `keep`          |\n| `tsdb.persistence.existingClaim`      | Use the existing PVC which must be created manually before bound, and specify the `subPath` if the PVC is shared with other components                                                                          |                 |\n| `tsdb.persistence.storageClass`       | Specify the `storageClass` used to provision the volume. Or the default StorageClass will be used (the default). Set it to `-` to disable dynamic provisioning                                                  |                 |\n| `tsdb.persistence.subPath`            | The sub path used in the volume                                                                                                                                                                                 |                 |\n| `tsdb.persistence.accessMode`         | The access mode of the volume                                                                                                                                                                                   | `ReadWriteOnce` |\n| `tsdb.persistence.size`               | The size of the volume                                                                                                                                                                                          | `5Gi`           |\n| `tsdb.persistence.annotations`        | The annotations of the volume                                                                                                                                                                                   |                 |\n| `tsdb.resources`                      | The [resources] to allocate for container                                                                                                                                                                       | undefined       |\n| `tsdb.nodeSelector`                   | Node labels for pod assignment                                                                                                                                                                                  | `{}`            |\n| `tsdb.tolerations`                    | Tolerations for pod assignment                                                                                                                                                                                  | `[]`            |\n| `tsdb.affinity`                       | Node/Pod affinities                                                                                                                                                                                             | `{}`            |\n| `tsdb.podAnnotations`                 | Annotations to add to the nginx pod                                                                                                                                                                             | `{}`            |\n\n\n[resources]: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\n[hertzbeat]: https://github.com/apache/hertzbeat/\n[artifacthub]: https://artifacthub.io/\n[helm]: https://helm.sh/\n\n\n### Release and Build Pages\n\n1. `helm package charts/* -d docs`\n2. `helm repo index docs`\n3. `commit and pr change`\n\n\n### Build Local\n\n1. `cd charts`\n2. `helm template --debug hertzbeat`\n3. `helm upgrade --set expose.type=NodePort --install demo ./hertzbeat`\n4. `helm uninstall demo`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fhertzbeat-helm-chart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fhertzbeat-helm-chart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fhertzbeat-helm-chart/lists"}