mirror of
				https://github.com/carlosedp/cluster-monitoring.git
				synced 2025-10-26 10:23:04 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			293 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			293 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {
 | |
|    "apiVersion": "apiextensions.k8s.io/v1beta1",
 | |
|    "kind": "CustomResourceDefinition",
 | |
|    "metadata": {
 | |
|       "annotations": {
 | |
|          "controller-gen.kubebuilder.io/version": "v0.2.4"
 | |
|       },
 | |
|       "creationTimestamp": null,
 | |
|       "name": "podmonitors.monitoring.coreos.com"
 | |
|    },
 | |
|    "spec": {
 | |
|       "group": "monitoring.coreos.com",
 | |
|       "names": {
 | |
|          "kind": "PodMonitor",
 | |
|          "listKind": "PodMonitorList",
 | |
|          "plural": "podmonitors",
 | |
|          "singular": "podmonitor"
 | |
|       },
 | |
|       "scope": "Namespaced",
 | |
|       "validation": {
 | |
|          "openAPIV3Schema": {
 | |
|             "description": "PodMonitor defines monitoring for a set of pods.",
 | |
|             "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 Pod selection for target discovery by Prometheus.",
 | |
|                   "properties": {
 | |
|                      "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"
 | |
|                      },
 | |
|                      "podMetricsEndpoints": {
 | |
|                         "description": "A list of endpoints allowed as part of this PodMonitor.",
 | |
|                         "items": {
 | |
|                            "description": "PodMetricsEndpoint defines a scrapeable endpoint of a Kubernetes Pod serving Prometheus metrics.",
 | |
|                            "properties": {
 | |
|                               "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 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 ingestion. 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
 | |
|                               }
 | |
|                            },
 | |
|                            "type": "object"
 | |
|                         },
 | |
|                         "type": "array"
 | |
|                      },
 | |
|                      "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 Pod 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"
 | |
|                      }
 | |
|                   },
 | |
|                   "required": [
 | |
|                      "podMetricsEndpoints",
 | |
|                      "selector"
 | |
|                   ],
 | |
|                   "type": "object"
 | |
|                }
 | |
|             },
 | |
|             "required": [
 | |
|                "spec"
 | |
|             ],
 | |
|             "type": "object"
 | |
|          }
 | |
|       },
 | |
|       "version": "v1",
 | |
|       "versions": [
 | |
|          {
 | |
|             "name": "v1",
 | |
|             "served": true,
 | |
|             "storage": true
 | |
|          }
 | |
|       ]
 | |
|    },
 | |
|    "status": {
 | |
|       "acceptedNames": {
 | |
|          "kind": "",
 | |
|          "plural": ""
 | |
|       },
 | |
|       "conditions": [ ],
 | |
|       "storedVersions": [ ]
 | |
|    }
 | |
| }
 |