Skip to main content

Workflow: Application Onboarding

Step-by-step guide for onboarding applications to Prometheus monitoring — from choosing the right instrumentation strategy through endpoint validation, ServiceMonitor creation, and data verification.


When to Use

Use this workflow to:

  • Instrument a custom application (Go, Java, Python, Node.js) for Prometheus
  • Deploy an exporter for a third-party system (PostgreSQL, Redis, NGINX)
  • Add VM/legacy targets via file_sd_configs
  • Set up synthetic endpoint monitoring with Probe CRDs

Workflow 1: Kubernetes App Onboarding

Journey

Step-by-Step

StepActionTool / ResourceKey Parameters
1Verify backend healthResource: prom://system/backends/{backend_id}Confirms connectivity, features, retention
2Choose instrumentation strategyprom_recommend_instrumentation(workload_type="custom_app", language="python", environment="kubernetes")Returns: direct_instrumentation / exporter / builtin_metrics
3Deploy instrumented app(Manual) — add instrumentation, build, deploy to K8s
4Validate /metrics endpointprom_test_endpoint(endpoint_url="http://my-app.default:8080/metrics")Returns: ok, metrics_count, format, errors
5Apply ServiceMonitorprom_apply_servicemonitor(namespace="default", service_name="my-app")Auto-detects Prometheus Operator selector labels
6Discover new metricsprom_explore_labels(backend_id="default", metric_name="http_requests_total")Shows all label names and top values
7Verify data flowsprom_query_instant(backend_id="default", query="rate(http_requests_total[5m])")Confirms metrics are being ingested

Guided Prompt: Use prom-k8s-app-onboarding-guided for the full step-by-step flow with the AI.

Strategy Decision Matrix

WorkloadLanguageFrameworkRecommended Strategy
Custom appGo/Java/Python/Nodedirect_instrumentation
Custom appJavaSpring Bootbuiltin_metrics (Actuator/Micrometer)
PostgreSQLexporter (postgres_exporter)
Redisexporter (redis_exporter)
NGINXexporter (nginx_exporter)

Workflow 2: Exporter Onboarding (Third-Party Systems)

Journey

Step-by-Step

StepActionTool / ResourceKey Parameters
1Browse catalogResource: prom://exporters/catalogAll exporters with ports, images, scopes
2Get recommendationprom_recommend_exporter(service_type="postgres")Returns matching exporters + notes
3Install exporterprom_install_exporter(exporter_type="postgres_exporter", namespace="monitoring")Creates Deployment + Service. MUTATES CLUSTER
4Test endpointprom_test_endpoint(endpoint_url="http://postgres-exporter.monitoring:9187/metrics")Validates Prometheus format
5Apply ServiceMonitorprom_apply_servicemonitor(namespace="monitoring", service_name="postgres-exporter")Wires to Prometheus Operator
6Verify end-to-endprom_verify_exporter(backend_id="default", endpoint_url="...", job="postgres_exporter")Polls endpoint + checks up{} series

Guided Prompt: Use prom-k8s-exporter-onboarding-guided for the full step-by-step flow.


Workflow 3: VM/Legacy Onboarding

For applications running on VMs or bare-metal servers. Uses file_sd_configs instead of ServiceMonitor.

StepActionToolKey Parameters
1Recommend strategyprom_recommend_instrumentation(environment="vm")Returns VM-specific guidance
2Deploy on VM(Manual) — install exporter binary or instrumented app
3Test endpointprom_test_endpoint(endpoint_url="http://10.0.1.5:8080/metrics")Validates remote endpoint
4Add to file_sdprom_manage_file_sd(targets=["10.0.1.5:8080"], target_labels={"job": "my-app"})Appends target + triggers /-/reload
5Verifyprom_query_instant(query="up{job='my-app'}")Confirms target is up

Guided Prompt: Use prom-vm-legacy-onboarding-guided for the full step-by-step flow.


Workflow 4: Synthetic Endpoint Monitoring (Probes)

For actively monitoring HTTP/TCP endpoint availability using Blackbox exporter + Probe CRDs.

StepActionToolKey Parameters
1Install Blackboxprom_install_exporter(exporter_type="blackbox_exporter", namespace="monitoring")Default http_2xx module configured
2Apply Probeprom_apply_probe(targets=["https://talkops.ai"], probe_name="talkops-probe")Auto-detects operator selector labels
3Verifyprom_query_instant(query="probe_success")Confirms synthetic check is running

Next Steps