Overview
Dashboard provides an integration framework that allows it to work seamlessly with external tools and services:- Metrics Providers: CPU and memory metrics from various sources
- Logging Systems: Log aggregation and analysis platforms
- Service Meshes: Integration with Istio, Linkerd, and others
- Monitoring Tools: Prometheus, Grafana, and observability platforms
The integration framework is located in
modules/api/pkg/integration/manager.go and supports pluggable integrations for metrics and other services.Metrics Integration
Dashboard integrates with metrics providers to display resource utilization data.metrics-server (Default)
Dashboard uses metrics-server as the default metrics provider:1
Install metrics-server
Deploy metrics-server to your cluster:
2
Verify Installation
Check that metrics-server is running:
3
Deploy metrics-scraper
The dashboard-metrics-scraper is deployed automatically with Dashboard:
How It Works
The metrics integration flow:- metrics-server collects metrics from kubelets
- dashboard-metrics-scraper queries the Metrics API every 60 seconds
- Metrics are stored in a SQLite database
- Dashboard API serves metrics to the frontend
- UI displays graphs, sparklines, and usage data
Configuration
Configure metrics integration via Dashboard flags:--metrics-scraper-service-name: Service name for the metrics scraper--namespace: Namespace where scraper is deployed--metric-client-check-period: Health check interval (default: 30s)
Dashboard automatically disables metrics if the provider becomes unavailable, ensuring resilience to metric provider crashes.
Monitoring Integrations
Prometheus
Integrate Dashboard with Prometheus for advanced monitoring:Scraping Dashboard Metrics
Configure Prometheus to scrape Dashboard metrics:Adding Prometheus Annotations
Annotate Dashboard resources for Prometheus discovery:Grafana
Visualize Dashboard metrics in Grafana:1
Add Prometheus Data Source
Configure Grafana to use your Prometheus instance:
2
Import Dashboard
Create a Grafana dashboard for Kubernetes Dashboard metrics
3
Configure Panels
Add panels for:
- API request rates
- Response times
- Error rates
- Resource utilization
Logging Integrations
ELK Stack (Elasticsearch, Logstash, Kibana)
Integrate Dashboard with ELK for advanced log analysis:Fluentd Configuration
Deploy Fluentd to collect Dashboard logs:Kibana Dashboards
Create Kibana visualizations for:- Error rate trends
- Request volume by endpoint
- Authentication failures
- Resource access patterns
Grafana Loki
Use Loki for lightweight log aggregation:Service Mesh Integration
Istio
Integrate Dashboard with Istio service mesh:Enable Sidecar Injection
Virtual Service Configuration
Route traffic through Istio:Observability
Istio provides automatic metrics, traces, and logs for Dashboard:- Kiali: Service graph and topology
- Jaeger: Distributed tracing
- Grafana: Istio dashboards
Linkerd
Integrate with Linkerd service mesh:Authentication Integration
OIDC (OpenID Connect)
Dashboard supports OIDC authentication through the Kubernetes API server.Configure API Server
Enable OIDC on your cluster:Login Flow
1
Obtain OIDC Token
User authenticates with identity provider
2
Present Token to Dashboard
Paste the ID token in Dashboard login screen
3
API Server Validation
Kubernetes API server validates the token
4
Access Granted
Dashboard proxies requests with the authenticated identity
OAuth2 Proxy
Use oauth2-proxy for SSO integration:Alert Manager Integration
Integrate with Prometheus AlertManager:Alert Rules
Define alerts for Dashboard issues:Notification Routing
Configure alert routing:Custom Integrations
Integration Framework
Dashboard’s integration framework supports custom providers:Creating a Custom Integration
Implement custom metric providers or integrations by extending the framework.Future versions of Dashboard may support additional integration types beyond metrics, such as custom logging providers or workflow integrations.
Best Practices
Use dedicated namespaces for integrations
Use dedicated namespaces for integrations
Deploy monitoring and logging tools in separate namespaces:
Implement resource limits
Implement resource limits
Set resource requests/limits for integration components:
Enable TLS for metrics endpoints
Enable TLS for metrics endpoints
Secure metrics scraping with TLS:
Configure retention policies
Configure retention policies
Set appropriate retention for logs and metrics:
Monitor integration health
Monitor integration health
Set up alerts for integration failures:
Troubleshooting
Metrics not appearing
Metrics not appearing
Check metrics-server:Verify metrics-scraper:Test Metrics API:
Prometheus not scraping
Prometheus not scraping
Check service discovery:Verify annotations:Check Prometheus targets:
Navigate to Prometheus UI → Status → Targets
Istio sidecar not injecting
Istio sidecar not injecting
Verify namespace label:Check injection status:Look for
istio-proxy container.Next Steps
Monitoring Metrics
Learn about metrics collection and visualization
Viewing Logs
Access and analyze container logs