mirror of
				https://github.com/carlosedp/cluster-monitoring.git
				synced 2025-10-26 10:23:04 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			516 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			516 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {
 | |
|    "apiVersion": "apiextensions.k8s.io/v1beta1",
 | |
|    "kind": "CustomResourceDefinition",
 | |
|    "metadata": {
 | |
|       "annotations": {
 | |
|          "controller-gen.kubebuilder.io/version": "v0.2.4"
 | |
|       },
 | |
|       "creationTimestamp": null,
 | |
|       "name": "servicemonitors.monitoring.coreos.com"
 | |
|    },
 | |
|    "spec": {
 | |
|       "group": "monitoring.coreos.com",
 | |
|       "names": {
 | |
|          "kind": "ServiceMonitor",
 | |
|          "listKind": "ServiceMonitorList",
 | |
|          "plural": "servicemonitors",
 | |
|          "singular": "servicemonitor"
 | |
|       },
 | |
|       "scope": "Namespaced",
 | |
|       "validation": {
 | |
|          "openAPIV3Schema": {
 | |
|             "description": "ServiceMonitor defines monitoring for a set of services.",
 | |
|             "properties": {
 | |
|                "apiVersion": {
 | |
|                   "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
 | |
|                   "type": "string"
 | |
|                },
 | |
|                "kind": {
 | |
|                   "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
 | |
|                   "type": "string"
 | |
|                },
 | |
|                "metadata": {
 | |
|                   "type": "object"
 | |
|                },
 | |
|                "spec": {
 | |
|                   "description": "Specification of desired Service selection for target discovery by Prometheus.",
 | |
|                   "properties": {
 | |
|                      "endpoints": {
 | |
|                         "description": "A list of endpoints allowed as part of this ServiceMonitor.",
 | |
|                         "items": {
 | |
|                            "description": "Endpoint defines a scrapeable endpoint serving Prometheus metrics.",
 | |
|                            "properties": {
 | |
|                               "basicAuth": {
 | |
|                                  "description": "BasicAuth allow an endpoint to authenticate over basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints",
 | |
|                                  "properties": {
 | |
|                                     "password": {
 | |
|                                        "description": "The secret in the service monitor namespace that contains the password for authentication.",
 | |
|                                        "properties": {
 | |
|                                           "key": {
 | |
|                                              "description": "The key of the secret to select from.  Must be a valid secret key.",
 | |
|                                              "type": "string"
 | |
|                                           },
 | |
|                                           "name": {
 | |
|                                              "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
 | |
|                                              "type": "string"
 | |
|                                           },
 | |
|                                           "optional": {
 | |
|                                              "description": "Specify whether the Secret or its key must be defined",
 | |
|                                              "type": "boolean"
 | |
|                                           }
 | |
|                                        },
 | |
|                                        "required": [
 | |
|                                           "key"
 | |
|                                        ],
 | |
|                                        "type": "object"
 | |
|                                     },
 | |
|                                     "username": {
 | |
|                                        "description": "The secret in the service monitor namespace that contains the username for authentication.",
 | |
|                                        "properties": {
 | |
|                                           "key": {
 | |
|                                              "description": "The key of the secret to select from.  Must be a valid secret key.",
 | |
|                                              "type": "string"
 | |
|                                           },
 | |
|                                           "name": {
 | |
|                                              "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
 | |
|                                              "type": "string"
 | |
|                                           },
 | |
|                                           "optional": {
 | |
|                                              "description": "Specify whether the Secret or its key must be defined",
 | |
|                                              "type": "boolean"
 | |
|                                           }
 | |
|                                        },
 | |
|                                        "required": [
 | |
|                                           "key"
 | |
|                                        ],
 | |
|                                        "type": "object"
 | |
|                                     }
 | |
|                                  },
 | |
|                                  "type": "object"
 | |
|                               },
 | |
|                               "bearerTokenFile": {
 | |
|                                  "description": "File to read bearer token for scraping targets.",
 | |
|                                  "type": "string"
 | |
|                               },
 | |
|                               "bearerTokenSecret": {
 | |
|                                  "description": "Secret to mount to read bearer token for scraping targets. The secret needs to be in the same namespace as the service monitor and accessible by the Prometheus Operator.",
 | |
|                                  "properties": {
 | |
|                                     "key": {
 | |
|                                        "description": "The key of the secret to select from.  Must be a valid secret key.",
 | |
|                                        "type": "string"
 | |
|                                     },
 | |
|                                     "name": {
 | |
|                                        "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
 | |
|                                        "type": "string"
 | |
|                                     },
 | |
|                                     "optional": {
 | |
|                                        "description": "Specify whether the Secret or its key must be defined",
 | |
|                                        "type": "boolean"
 | |
|                                     }
 | |
|                                  },
 | |
|                                  "required": [
 | |
|                                     "key"
 | |
|                                  ],
 | |
|                                  "type": "object"
 | |
|                               },
 | |
|                               "honorLabels": {
 | |
|                                  "description": "HonorLabels chooses the metric's labels on collisions with target labels.",
 | |
|                                  "type": "boolean"
 | |
|                               },
 | |
|                               "honorTimestamps": {
 | |
|                                  "description": "HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.",
 | |
|                                  "type": "boolean"
 | |
|                               },
 | |
|                               "interval": {
 | |
|                                  "description": "Interval at which metrics should be scraped",
 | |
|                                  "type": "string"
 | |
|                               },
 | |
|                               "metricRelabelings": {
 | |
|                                  "description": "MetricRelabelConfigs to apply to samples before ingestion.",
 | |
|                                  "items": {
 | |
|                                     "description": "RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs",
 | |
|                                     "properties": {
 | |
|                                        "action": {
 | |
|                                           "description": "Action to perform based on regex matching. Default is 'replace'",
 | |
|                                           "type": "string"
 | |
|                                        },
 | |
|                                        "modulus": {
 | |
|                                           "description": "Modulus to take of the hash of the source label values.",
 | |
|                                           "format": "int64",
 | |
|                                           "type": "integer"
 | |
|                                        },
 | |
|                                        "regex": {
 | |
|                                           "description": "Regular expression against which the extracted value is matched. Default is '(.*)'",
 | |
|                                           "type": "string"
 | |
|                                        },
 | |
|                                        "replacement": {
 | |
|                                           "description": "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'",
 | |
|                                           "type": "string"
 | |
|                                        },
 | |
|                                        "separator": {
 | |
|                                           "description": "Separator placed between concatenated source label values. default is ';'.",
 | |
|                                           "type": "string"
 | |
|                                        },
 | |
|                                        "sourceLabels": {
 | |
|                                           "description": "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.",
 | |
|                                           "items": {
 | |
|                                              "type": "string"
 | |
|                                           },
 | |
|                                           "type": "array"
 | |
|                                        },
 | |
|                                        "targetLabel": {
 | |
|                                           "description": "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.",
 | |
|                                           "type": "string"
 | |
|                                        }
 | |
|                                     },
 | |
|                                     "type": "object"
 | |
|                                  },
 | |
|                                  "type": "array"
 | |
|                               },
 | |
|                               "params": {
 | |
|                                  "additionalProperties": {
 | |
|                                     "items": {
 | |
|                                        "type": "string"
 | |
|                                     },
 | |
|                                     "type": "array"
 | |
|                                  },
 | |
|                                  "description": "Optional HTTP URL parameters",
 | |
|                                  "type": "object"
 | |
|                               },
 | |
|                               "path": {
 | |
|                                  "description": "HTTP path to scrape for metrics.",
 | |
|                                  "type": "string"
 | |
|                               },
 | |
|                               "port": {
 | |
|                                  "description": "Name of the service port this endpoint refers to. Mutually exclusive with targetPort.",
 | |
|                                  "type": "string"
 | |
|                               },
 | |
|                               "proxyUrl": {
 | |
|                                  "description": "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.",
 | |
|                                  "type": "string"
 | |
|                               },
 | |
|                               "relabelings": {
 | |
|                                  "description": "RelabelConfigs to apply to samples before scraping. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config",
 | |
|                                  "items": {
 | |
|                                     "description": "RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs",
 | |
|                                     "properties": {
 | |
|                                        "action": {
 | |
|                                           "description": "Action to perform based on regex matching. Default is 'replace'",
 | |
|                                           "type": "string"
 | |
|                                        },
 | |
|                                        "modulus": {
 | |
|                                           "description": "Modulus to take of the hash of the source label values.",
 | |
|                                           "format": "int64",
 | |
|                                           "type": "integer"
 | |
|                                        },
 | |
|                                        "regex": {
 | |
|                                           "description": "Regular expression against which the extracted value is matched. Default is '(.*)'",
 | |
|                                           "type": "string"
 | |
|                                        },
 | |
|                                        "replacement": {
 | |
|                                           "description": "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'",
 | |
|                                           "type": "string"
 | |
|                                        },
 | |
|                                        "separator": {
 | |
|                                           "description": "Separator placed between concatenated source label values. default is ';'.",
 | |
|                                           "type": "string"
 | |
|                                        },
 | |
|                                        "sourceLabels": {
 | |
|                                           "description": "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.",
 | |
|                                           "items": {
 | |
|                                              "type": "string"
 | |
|                                           },
 | |
|                                           "type": "array"
 | |
|                                        },
 | |
|                                        "targetLabel": {
 | |
|                                           "description": "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.",
 | |
|                                           "type": "string"
 | |
|                                        }
 | |
|                                     },
 | |
|                                     "type": "object"
 | |
|                                  },
 | |
|                                  "type": "array"
 | |
|                               },
 | |
|                               "scheme": {
 | |
|                                  "description": "HTTP scheme to use for scraping.",
 | |
|                                  "type": "string"
 | |
|                               },
 | |
|                               "scrapeTimeout": {
 | |
|                                  "description": "Timeout after which the scrape is ended",
 | |
|                                  "type": "string"
 | |
|                               },
 | |
|                               "targetPort": {
 | |
|                                  "anyOf": [
 | |
|                                     {
 | |
|                                        "type": "integer"
 | |
|                                     },
 | |
|                                     {
 | |
|                                        "type": "string"
 | |
|                                     }
 | |
|                                  ],
 | |
|                                  "description": "Name or number of the target port of the endpoint. Mutually exclusive with port.",
 | |
|                                  "x-kubernetes-int-or-string": true
 | |
|                               },
 | |
|                               "tlsConfig": {
 | |
|                                  "description": "TLS configuration to use when scraping the endpoint",
 | |
|                                  "properties": {
 | |
|                                     "ca": {
 | |
|                                        "description": "Stuct containing the CA cert to use for the targets.",
 | |
|                                        "properties": {
 | |
|                                           "configMap": {
 | |
|                                              "description": "ConfigMap containing data to use for the targets.",
 | |
|                                              "properties": {
 | |
|                                                 "key": {
 | |
|                                                    "description": "The key to select.",
 | |
|                                                    "type": "string"
 | |
|                                                 },
 | |
|                                                 "name": {
 | |
|                                                    "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
 | |
|                                                    "type": "string"
 | |
|                                                 },
 | |
|                                                 "optional": {
 | |
|                                                    "description": "Specify whether the ConfigMap or its key must be defined",
 | |
|                                                    "type": "boolean"
 | |
|                                                 }
 | |
|                                              },
 | |
|                                              "required": [
 | |
|                                                 "key"
 | |
|                                              ],
 | |
|                                              "type": "object"
 | |
|                                           },
 | |
|                                           "secret": {
 | |
|                                              "description": "Secret containing data to use for the targets.",
 | |
|                                              "properties": {
 | |
|                                                 "key": {
 | |
|                                                    "description": "The key of the secret to select from.  Must be a valid secret key.",
 | |
|                                                    "type": "string"
 | |
|                                                 },
 | |
|                                                 "name": {
 | |
|                                                    "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
 | |
|                                                    "type": "string"
 | |
|                                                 },
 | |
|                                                 "optional": {
 | |
|                                                    "description": "Specify whether the Secret or its key must be defined",
 | |
|                                                    "type": "boolean"
 | |
|                                                 }
 | |
|                                              },
 | |
|                                              "required": [
 | |
|                                                 "key"
 | |
|                                              ],
 | |
|                                              "type": "object"
 | |
|                                           }
 | |
|                                        },
 | |
|                                        "type": "object"
 | |
|                                     },
 | |
|                                     "caFile": {
 | |
|                                        "description": "Path to the CA cert in the Prometheus container to use for the targets.",
 | |
|                                        "type": "string"
 | |
|                                     },
 | |
|                                     "cert": {
 | |
|                                        "description": "Struct containing the client cert file for the targets.",
 | |
|                                        "properties": {
 | |
|                                           "configMap": {
 | |
|                                              "description": "ConfigMap containing data to use for the targets.",
 | |
|                                              "properties": {
 | |
|                                                 "key": {
 | |
|                                                    "description": "The key to select.",
 | |
|                                                    "type": "string"
 | |
|                                                 },
 | |
|                                                 "name": {
 | |
|                                                    "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
 | |
|                                                    "type": "string"
 | |
|                                                 },
 | |
|                                                 "optional": {
 | |
|                                                    "description": "Specify whether the ConfigMap or its key must be defined",
 | |
|                                                    "type": "boolean"
 | |
|                                                 }
 | |
|                                              },
 | |
|                                              "required": [
 | |
|                                                 "key"
 | |
|                                              ],
 | |
|                                              "type": "object"
 | |
|                                           },
 | |
|                                           "secret": {
 | |
|                                              "description": "Secret containing data to use for the targets.",
 | |
|                                              "properties": {
 | |
|                                                 "key": {
 | |
|                                                    "description": "The key of the secret to select from.  Must be a valid secret key.",
 | |
|                                                    "type": "string"
 | |
|                                                 },
 | |
|                                                 "name": {
 | |
|                                                    "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
 | |
|                                                    "type": "string"
 | |
|                                                 },
 | |
|                                                 "optional": {
 | |
|                                                    "description": "Specify whether the Secret or its key must be defined",
 | |
|                                                    "type": "boolean"
 | |
|                                                 }
 | |
|                                              },
 | |
|                                              "required": [
 | |
|                                                 "key"
 | |
|                                              ],
 | |
|                                              "type": "object"
 | |
|                                           }
 | |
|                                        },
 | |
|                                        "type": "object"
 | |
|                                     },
 | |
|                                     "certFile": {
 | |
|                                        "description": "Path to the client cert file in the Prometheus container for the targets.",
 | |
|                                        "type": "string"
 | |
|                                     },
 | |
|                                     "insecureSkipVerify": {
 | |
|                                        "description": "Disable target certificate validation.",
 | |
|                                        "type": "boolean"
 | |
|                                     },
 | |
|                                     "keyFile": {
 | |
|                                        "description": "Path to the client key file in the Prometheus container for the targets.",
 | |
|                                        "type": "string"
 | |
|                                     },
 | |
|                                     "keySecret": {
 | |
|                                        "description": "Secret containing the client key file for the targets.",
 | |
|                                        "properties": {
 | |
|                                           "key": {
 | |
|                                              "description": "The key of the secret to select from.  Must be a valid secret key.",
 | |
|                                              "type": "string"
 | |
|                                           },
 | |
|                                           "name": {
 | |
|                                              "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
 | |
|                                              "type": "string"
 | |
|                                           },
 | |
|                                           "optional": {
 | |
|                                              "description": "Specify whether the Secret or its key must be defined",
 | |
|                                              "type": "boolean"
 | |
|                                           }
 | |
|                                        },
 | |
|                                        "required": [
 | |
|                                           "key"
 | |
|                                        ],
 | |
|                                        "type": "object"
 | |
|                                     },
 | |
|                                     "serverName": {
 | |
|                                        "description": "Used to verify the hostname for the targets.",
 | |
|                                        "type": "string"
 | |
|                                     }
 | |
|                                  },
 | |
|                                  "type": "object"
 | |
|                               }
 | |
|                            },
 | |
|                            "type": "object"
 | |
|                         },
 | |
|                         "type": "array"
 | |
|                      },
 | |
|                      "jobLabel": {
 | |
|                         "description": "The label to use to retrieve the job name from.",
 | |
|                         "type": "string"
 | |
|                      },
 | |
|                      "namespaceSelector": {
 | |
|                         "description": "Selector to select which namespaces the Endpoints objects are discovered from.",
 | |
|                         "properties": {
 | |
|                            "any": {
 | |
|                               "description": "Boolean describing whether all namespaces are selected in contrast to a list restricting them.",
 | |
|                               "type": "boolean"
 | |
|                            },
 | |
|                            "matchNames": {
 | |
|                               "description": "List of namespace names.",
 | |
|                               "items": {
 | |
|                                  "type": "string"
 | |
|                               },
 | |
|                               "type": "array"
 | |
|                            }
 | |
|                         },
 | |
|                         "type": "object"
 | |
|                      },
 | |
|                      "podTargetLabels": {
 | |
|                         "description": "PodTargetLabels transfers labels on the Kubernetes Pod onto the target.",
 | |
|                         "items": {
 | |
|                            "type": "string"
 | |
|                         },
 | |
|                         "type": "array"
 | |
|                      },
 | |
|                      "sampleLimit": {
 | |
|                         "description": "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.",
 | |
|                         "format": "int64",
 | |
|                         "type": "integer"
 | |
|                      },
 | |
|                      "selector": {
 | |
|                         "description": "Selector to select Endpoints objects.",
 | |
|                         "properties": {
 | |
|                            "matchExpressions": {
 | |
|                               "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
 | |
|                               "items": {
 | |
|                                  "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
 | |
|                                  "properties": {
 | |
|                                     "key": {
 | |
|                                        "description": "key is the label key that the selector applies to.",
 | |
|                                        "type": "string"
 | |
|                                     },
 | |
|                                     "operator": {
 | |
|                                        "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.",
 | |
|                                        "type": "string"
 | |
|                                     },
 | |
|                                     "values": {
 | |
|                                        "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.",
 | |
|                                        "items": {
 | |
|                                           "type": "string"
 | |
|                                        },
 | |
|                                        "type": "array"
 | |
|                                     }
 | |
|                                  },
 | |
|                                  "required": [
 | |
|                                     "key",
 | |
|                                     "operator"
 | |
|                                  ],
 | |
|                                  "type": "object"
 | |
|                               },
 | |
|                               "type": "array"
 | |
|                            },
 | |
|                            "matchLabels": {
 | |
|                               "additionalProperties": {
 | |
|                                  "type": "string"
 | |
|                               },
 | |
|                               "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
 | |
|                               "type": "object"
 | |
|                            }
 | |
|                         },
 | |
|                         "type": "object"
 | |
|                      },
 | |
|                      "targetLabels": {
 | |
|                         "description": "TargetLabels transfers labels on the Kubernetes Service onto the target.",
 | |
|                         "items": {
 | |
|                            "type": "string"
 | |
|                         },
 | |
|                         "type": "array"
 | |
|                      }
 | |
|                   },
 | |
|                   "required": [
 | |
|                      "endpoints",
 | |
|                      "selector"
 | |
|                   ],
 | |
|                   "type": "object"
 | |
|                }
 | |
|             },
 | |
|             "required": [
 | |
|                "spec"
 | |
|             ],
 | |
|             "type": "object"
 | |
|          }
 | |
|       },
 | |
|       "version": "v1",
 | |
|       "versions": [
 | |
|          {
 | |
|             "name": "v1",
 | |
|             "served": true,
 | |
|             "storage": true
 | |
|          }
 | |
|       ]
 | |
|    },
 | |
|    "status": {
 | |
|       "acceptedNames": {
 | |
|          "kind": "",
 | |
|          "plural": ""
 | |
|       },
 | |
|       "conditions": [ ],
 | |
|       "storedVersions": [ ]
 | |
|    }
 | |
| }
 |