integrations/solr/documentation.yaml (138 lines of code) (raw):

exporter_type: sidecar app_name_short: Solr app_name: Apache {{app_name_short}} app_site_name: {{app_name}} app_site_url: https://solr.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: solr-exporter data: config.yml: | hostPort: 127.0.0.1:9999 --- apiVersion: apps/v1 kind: Deployment metadata: name: solr spec: selector: matchLabels: + app.kubernetes.io/name: solr template: metadata: labels: + app.kubernetes.io/name: solr spec: containers: - name: solr image: solr:8.8.2 + ports: + - containerPort: 9999 + name: jmx + env: + - name: ENABLE_REMOTE_JMX_OPTS + value: "true" + - name: RMI_PORT + value: "9999" + - name: exporter + image: bitnami/jmx-exporter:0.17.0 + ports: + - containerPort: 9000 + name: prometheus + command: + - java + - -jar + - jmx_prometheus_httpserver.jar + args: + - "9000" + - /opt/jmx_exporter/config.yml + volumeMounts: + - mountPath: /opt/jmx_exporter/config.yml + subPath: config.yml + name: solr-exporter + volumes: + - name: solr-exporter + configMap: + name: solr-exporter + items: + - key: config.yml + path: config.yml podmonitoring_config: | apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: solr labels: app.kubernetes.io/name: solr 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: solr additional_prereq_info: | Solr supports JMX and can be [configured](https://solr.apache.org/guide/6_6/using-jmx-with-solr.html#UsingJMXwithSolr-ConfiguringaRemoteConnectiontoSolrJMX){:class="external"} by setting the environment variables `ENABLE_REMOTE_JMX_OPTS` to `true` and `RMI_PORT` to the desired port for remote JMX connections. sample_promql_query: up{job="solr", cluster="{{cluster_name}}", namespace="{{namespace_name}}"} alerts_config: | apiVersion: monitoring.googleapis.com/v1 kind: Rules metadata: name: solr-rules labels: app.kubernetes.io/component: rules app.kubernetes.io/name: solr-rules app.kubernetes.io/part-of: google-cloud-managed-prometheus spec: groups: - name: solr interval: 30s rules: - alert: SolrHighCacheEvictions annotations: description: |- Solr high cache evictions VALUE = {{ $value }} LABELS: {{ $labels }} summary: Solr high cache evictions (instance {{ $labels.instance }}) expr: solr_core_evictions > 0 for: 5m labels: severity: warning - alert: SolrHighRequestCount annotations: description: |- Solr high request count VALUE = {{ $value }} LABELS: {{ $labels }} summary: Solr high request count (instance {{ $labels.instance }}) expr: solr_core_Count{name="requests"} > 10 for: 5m labels: severity: warning - alert: SolrHighRequestErrors annotations: description: |- Solr high request errors VALUE = {{ $value }} LABELS: {{ $labels }} summary: Solr high request errors (instance {{ $labels.instance }}) expr: solr_core_Count{name="errors"} > 0 for: 5m labels: severity: warning additional_alert_info: You can adjust the alert thresholds to suit your application.