Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Create the custom_values.yaml file.
    1. The following example shows custom_values.yaml chart.

      Code Block
      titlecustom_values.yaml
      prometheus:
        service:
          type: LoadBalancer
          port: 80
          # AWS EKS specific setting
          annotations:
            service.beta.kubernetes.io/aws-load-balancer-internal: "true"
        prometheusSpec:
          # Expose additional targets which can be discovered by Prometheus
          additionalScrapeConfigs:
            - job_name: 'snaplogic-snaplex-hpa-jcc-autoscale-metrics'
              scrape_interval: 15s
              metrics_path: '/autoscale_metrics' # default is metrics
              kubernetes_sd_configs:
                - role: pod
                  namespaces:
                    names:
                      - default
                      # If you install the Snaplex in your own namespace, you have to provide here.
                      # - snaplogic 
              scheme: https
              tls_config:
                insecure_skip_verify: true
              relabel_configs:
              - source_labels: [__meta_kubernetes_namespace]
                action: replace
                target_label: namespace
              - source_labels: [__meta_kubernetes_pod_name]
                action: replace
                target_label: pod
              - source_labels: [__address__]
                action: replace
                regex: ([^:]+)(?::\d+)?
                replacement: ${1}:8081
                target_label: __address__
              - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_type]
                action: keep
                regex: jcc # Name for the Pod to match
      
      grafana:
        # set 'enabled: true' if you want to enable the Grafana dashboard
        enabled: false
        service:
          type: LoadBalancer
          port: 80
          # AWS EKS specific setting
          annotations:
            service.beta.kubernetes.io/aws-load-balancer-internal: "true"
      
      alertmanager:
        enabled: false

      You can enable the Grafana dashboard in the chart.


    2. Create your own namespace by adding the namespace entry into the following field.  
      prometheusSpec.additionalScrapeConfigs.kubernetes_sd_configs.namespaces.names
      In the custom_values.yaml Helm chart, the namespace is snaplogic; however, it is commented out in the chart. To use SnapLogic as your namespace, uncomment those lines:

      Code Block
      # If you install the Snaplex in your own namespace, you have to provide here.
      # - snaplogic





  2. Install Prometheus software by deploying the following Helm chart.

    Code Block
    NAME_SPACE=monitoring
    PROMETHEUS_VERSION=14.0.1
    PROM_RELEASE_NAME=prometheus
    
    # create namespace
    kubectl create namespace $NAME_SPACE
    # install Prometheus 
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm install $PROM_RELEASE_NAME prometheus-community/kube-prometheus-stack --version $PROMETHEUS_VERSION --namespace $NAME_SPACE -f custom_values.yaml


  3. Verify that the Prometheus and Grafana services by running the following command.
    $ kubectl get all -n monitoring

    Code Block
    NAME                                                         READY   STATUS    RESTARTS   AGE
    pod/alertmanager-prometheus-kube-prometheus-alertmanager-0   2/2     Running   0          19m
    pod/prometheus-grafana-6f5448f95b-68zdt                      2/2     Running   0          19m
    pod/prometheus-kube-prometheus-operator-8556f58759-tlxb8     1/1     Running   0          19m
    pod/prometheus-kube-state-metrics-6bfcd6f648-ckzf6           1/1     Running   0          19m
    pod/prometheus-prometheus-kube-prometheus-prometheus-0       2/2     Running   1          19m
    pod/prometheus-prometheus-node-exporter-fgc5x                1/1     Running   0          19m
    pod/prometheus-prometheus-node-exporter-r7dgf                1/1     Running   0          19m
    pod/prometheus-prometheus-node-exporter-rd8pz                1/1     Running   0          19m
    
    
    NAME                                              TYPE           CLUSTER-IP       EXTERNAL-IP                                                                        PORT(S)                      AGE
    service/alertmanager-operated                     ClusterIP      None             <none>                                                                             9093/TCP,9094/TCP,9094/UDP   19m
    service/prometheus-grafana                        LoadBalancer   10.100.153.99    internal-xxxx.us-west-2.elb.amazonaws.com   80:30324/TCP                 19m
    service/prometheus-kube-prometheus-operator       ClusterIP      10.100.234.140   <none>                                                                             443/TCP                      19m
    service/prometheus-kube-prometheus-prometheus     LoadBalancer   10.100.20.88     internal-xxxx.us-west-2.elb.amazonaws.com   80:31644/TCP                 19m
    service/prometheus-kube-state-metrics             ClusterIP      10.100.184.76    <none>                                                                             8080/TCP                     19m
    service/prometheus-operated                       ClusterIP      None             <none>                                                                             9090/TCP                     19m
    service/prometheus-prometheus-node-exporter       ClusterIP      10.100.216.232   <none>                                                                             9100/TCP                     19m
    
    NAME                                                 DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/prometheus-prometheus-node-exporter   3         3         3       3            3           <none>          19m
    
    NAME                                                  READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/prometheus-grafana                    1/1     1            1           19m
    deployment.apps/prometheus-kube-prometheus-operator   1/1     1            1           19m
    deployment.apps/prometheus-kube-state-metrics         1/1     1            1           19m
    
    NAME                                                             DESIRED   CURRENT   READY   AGE
    replicaset.apps/prometheus-grafana-6f5448f95b                    1         1         1       19m
    replicaset.apps/prometheus-kube-prometheus-operator-8556f58759   1         1         1       19m
    replicaset.apps/prometheus-kube-state-metrics-6bfcd6f648         1         1         1       19m
    
    NAME                                                                    READY   AGE
    statefulset.apps/alertmanager-prometheus-kube-prometheus-alertmanager   1/1     19m
    statefulset.apps/prometheus-prometheus-kube-prometheus-prometheus       1/1     19m


  4. Access the Prometheus and Grafana UIs with the respective IP addresses under the EXTERNAL-IP column.

...

  1. Import the following SnapLogic template to your Grafana analytics from the following source:
    https://grafana.com/grafana/dashboards/14363

    The page describes multiple methods for importing the template.
  2. In the custom_values.yaml chart, set the Enabled field to true.

  3. Access the Grafana UI through the IP addresses under the EXTERNAL-IP column from Step 2 of Installing the Prometheus Application.

    Info

    You can also use the kubectl top command to monitor the CPU and Memory for the pods.


...