Prometheus Integration
Prometheus is a powerful monitoring and alerting toolkit, often used for collecting and querying various system metrics. This guide outlines the steps required to integrate Prometheus with an self-hosted instance.
Kubernetes
Deepgram supports self-hosted deployments on Kubernetes via the deepgram-self-hosted
Helm chart. Prometheus will be installed and automatically configured if either scaling.auto.enabled
or kube-prometheus-stack.includeDependency
is set to true.
If you would like to add additional configuration, see the kube-prometheus-stack
Helm chart for available values. See the Overriding Values from a Parent Chart documentation for details on setting these values in the kube-prometheus-stack
subchart from the deepgram-self-hosted
parent chart.
Docker/Podman
Self-hosted deployments utilizing Docker or Podman will need to manually install and manage Prometheus.
Prerequisites
Before proceeding, ensure that you have the following:
- Access to the self-hosted instance with the metrics endpoint exposed. See the Metrics Guide for details. Note that this guide assumes you chose port 9991 for the
HOST_PORT
. - Prometheus installed on your machine or server. Visit Download Prometheus for installation instructions.
- Local system permissions to modify the Prometheus configuration file (usually named
prometheus.yml
)
Integrate with Deepgram Engine
Step 1: Add Prometheus Target
Add the target to the Prometheus configuration file in the prometheus.yml
file. Locate the scrape_configs
section, and add a new job with the Engine container instance as a target:
scrape_configs:
- job_name: "dg_self_hosted_instance"
static_configs:
- targets: ["<ENGINE_INSTANCE_URI>:9991"]
Replace <ENGINE_INSTANCE_URI>
with the IP address or hostname of the Engine container. Save the configuration file.
Step 2: Reload Prometheus Configuration
To apply the changes made to the prometheus.yml
file, you need to reload the Prometheus configuration. You can do this by restarting the Prometheus service:
sudo systemctl restart prometheus
Step 3: Verify the Integration
Open the Prometheus web interface, usually accessible at http://localhost:9090
, and navigate to the "Targets" page (under the "Status" menu). You should see the dg_self_hosted_instance
job listed with a status of "UP", indicating that Prometheus is successfully scraping metrics from the Engine container.
Querying Metrics
With the integration complete, you can now query the collected metrics using the Prometheus web interface or API. You may consider using a tool like Grafana for handling visualization and alerting.
Updated 5 months ago