integrations/tomcat/documentation.yaml (166 lines of code) (raw):

exporter_type: sidecar app_name_short: Tomcat app_name: Apache {{app_name_short}} app_site_name: {{app_name}} app_site_url: https://tomcat.apache.org/ exporter_name: the JMX exporter exporter_pkg_name: jmx-exporter exporter_repo_url: https://github.com/bitnami/containers/tree/main/bitnami/jmx-exporter dashboard_available: true minimum_exporter_version: "0.17.0" multiple_dashboards: false dashboard_display_name: {{app_name_short}} Prometheus Overview config_mods: | apiVersion: v1 kind: ConfigMap metadata: name: tomcat-exporter data: config.yml: | hostPort: 127.0.0.1:9010 lowercaseOutputLabelNames: true lowercaseOutputName: true rules: - pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):' name: tomcat_$3_total labels: port: "$2" protocol: "$1" help: Tomcat global $3 type: COUNTER - pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount):' name: tomcat_servlet_$3_total labels: module: "$1" servlet: "$2" help: Tomcat servlet $3 total type: COUNTER - pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):' name: tomcat_threadpool_$3 labels: port: "$2" protocol: "$1" help: Tomcat threadpool $3 type: GAUGE - pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):' name: tomcat_session_$3_total labels: context: "$2" host: "$1" help: Tomcat session $3 total type: COUNTER --- apiVersion: apps/v1 kind: Deployment metadata: name: tomcat spec: selector: matchLabels: + app.kubernetes.io/name: tomcat template: metadata: labels: + app.kubernetes.io/name: tomcat spec: containers: - name: tomcat image: tomcat:9.0.46-jdk11-openjdk-buster ports: - containerPort: 8080 name: http env: + - name: CATALINA_OPTS + value: "-Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010" + - name: exporter + image: bitnami/jmx-exporter:0.17.0 + ports: + - containerPort: 9113 + name: prometheus + command: + - java + - -jar + - jmx_prometheus_httpserver.jar + args: + - "9113" + - /opt/jmx_exporter/config.yml + volumeMounts: + - mountPath: /opt/jmx_exporter/config.yml + subPath: config.yml + name: tomcat-exporter + volumes: + - name: tomcat-exporter + configMap: + name: tomcat-exporter + items: + - key: config.yml + path: config.yml additional_prereq_info: | Tomcat supports JMX, which can be enabled by configuring the `CATALINA_OPTS` environment variable. podmonitoring_config: | apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: tomcat labels: app.kubernetes.io/name: tomcat app.kubernetes.io/part-of: google-cloud-managed-prometheus spec: endpoints: - port: prometheus scheme: http interval: 30s path: /metrics selector: matchLabels: app.kubernetes.io/name: tomcat sample_promql_query: up{job="tomcat", cluster="{{cluster_name}}", namespace="{{namespace_name}}"} alerts_config: | apiVersion: monitoring.googleapis.com/v1 kind: Rules metadata: name: tomcat-rules labels: app.kubernetes.io/component: rules app.kubernetes.io/name: tomcat-rules app.kubernetes.io/part-of: google-cloud-managed-prometheus spec: groups: - name: tomcat interval: 30s rules: - alert: TomcatHighRequestRate annotations: description: |- Tomcat high request rate VALUE = {{ $value }} LABELS: {{ $labels }} summary: Tomcat high request rate (instance {{ $labels.instance }}) expr: rate(tomcat_requestcount_total[5m]) >= 100 for: 5m labels: severity: warning - alert: TomcatLowRequestRate annotations: description: |- Tomcat low request rate VALUE = {{ $value }} LABELS: {{ $labels }} summary: Tomcat low request rate (instance {{ $labels.instance }}) expr: rate(tomcat_requestcount_total[5m]) <= 10 for: 5m labels: severity: warning - alert: TomcatHighErrorRate annotations: description: |- Tomcat high error rate VALUE = {{ $value }} LABELS: {{ $labels }} summary: Tomcat high error rate (instance {{ $labels.instance }}) expr: rate(tomcat_errorcount_total[5m]) > 100 for: 5m labels: severity: warning additional_alert_info: You can adjust the alert thresholds to suit your application.