Skip to content

Observability Dashboards for Workbench Components

This document explains how to enable Grafana dashboards for various components in the Workbench, allowing you to monitor key metrics. The components covered include:

  • Jenkins
  • ArgoCD
  • Argo Rollouts
  • KubeVela

By default, metric collection is not enabled for these components and needs to be turned on manually. The methods for each component are described below.

Jenkins

Note

Jenkins version must be >= v0.4.7

You can enable metrics by updating the Helm chart parameters. Follow these steps:

  1. Go to Container Management , click Clusters, and find the cluster where Jenkins is deployed.
  2. Click Helm Apps , locate Jenkins in its namespace, and click Update
  3. Choose to update via YAML, and modify the following fields:

    jenkins:
      Master:
        metrics:
          enabled: true
          serviceMonitor:
            enabled: true
            additionalLabels:
              operator.insight.io/managed-by: insight
    
  4. Click Save , and wait for about 3 minutes.

  5. Go to Observability -> Dashboards, and search for the keyword jenkins to open the dashboard.

ArgoCD

ArgoCD metrics can also be enabled by updating Helm parameters. The update steps are the same as described in Jenkins setup. Search for argocd in the dashboards. Modify the following YAML:

argo-cd:
  controller:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        additionalLabels:
          operator.insight.io/managed-by: insight
  dex:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        additionalLabels:
          operator.insight.io/managed-by: insight
  redis:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        additionalLabels:
          operator.insight.io/managed-by: insight
  server:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        additionalLabels:
          operator.insight.io/managed-by: insight
  repoServer:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        additionalLabels:
          operator.insight.io/managed-by: insight
  notifications:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        additionalLabels:
          operator.insight.io/managed-by: insight
  applicationSet:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        additionalLabels:
          operator.insight.io/managed-by: insight

Argo Rollouts

Argo Rollouts metrics can be enabled similarly by updating Helm parameters, following the same steps as in Jenkins setup. Search with the keyword argo-rollouts. Modify the following YAML:

argo-rollouts:
  controller:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        additionalLabels:
          operator.insight.io/managed-by: insight

KubeVela

KubeVela does not support enabling metrics via Helm parameters. You will need to manually deploy the following resources:

  1. Deploy the Service:

    apiVersion: v1
    kind: Service
    metadata:
      name: kubevela-controller-service
      namespace: < your kubevela namespace > # Replace with your namespace
      labels:
        component: kubevela-controller
    spec:
      ports:
        - name: http
          protocol: TCP
          port: 9443
          targetPort: 9443
        - name: metrics
          protocol: TCP
          port: 8080
          targetPort: 8080
      selector: < kubevela core pod label selector> # Replace with the actual selector
    
  2. Deploy the ServiceMonitor:

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      name: amamba-kubevela
      namespace: < your kubevela namespace > # Replace with your namespace
      labels:
        operator.insight.io/managed-by: insight
    spec:
      endpoints:
        - honorLabels: true
          interval: 10s
          path: /metrics
          port: metrics
          scheme: http
      namespaceSelector:
        matchNames:
          - < your kubevela namespace > # Replace with your namespace
      selector:
        matchLabels:
          component: kubevela-controller
    

Note

Make sure to replace the placeholders with your actual namespace and label selectors.
The method to open the dashboards is the same as for Jenkins, ArgoCD, and other components.

Comments