Prometheus Integration
Kubernetes
Section titled “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
Section titled “Docker/Podman”Self-hosted deployments utilizing Docker or Podman will need to manually install and manage Prometheus.
Prerequisites
Section titled “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
Section titled “Integrate with Deepgram Engine”Step 1: Add Prometheus Target
Section titled “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:
yaml
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
Section titled “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:
Shell
sudo systemctl restart prometheusStep 3: Verify the Integration
Section titled “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
Section titled “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. Deepgram provides an open-source Grafana dashboard template for customers to begin monitoring self-hosted metrics.