mirror of
				https://github.com/carlosedp/cluster-monitoring.git
				synced 2025-10-26 10:23:04 +01:00 
			
		
		
		
	Add APC UPS exporter
This commit is contained in:
		
							parent
							
								
									f8fd72a834
								
							
						
					
					
						commit
						fe9ca8f04c
					
				
							
								
								
									
										80
									
								
								ups_exporter.jsonnet
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								ups_exporter.jsonnet
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,80 @@ | ||||
| local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet'; | ||||
| 
 | ||||
| { | ||||
|   _config+:: { | ||||
|     namespace: 'monitoring', | ||||
| 
 | ||||
|     ups: { | ||||
|       ips: ['192.168.1.62'], | ||||
|     }, | ||||
| 
 | ||||
|     // Add custom dashboards | ||||
|     grafanaDashboards+:: { | ||||
|       'apc-ups-dashboard.json': (import 'grafana-dashboards/apc-ups-dashboard.json'), | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|     upsExporter+:: { | ||||
|       serviceMonitor: | ||||
|       { | ||||
|         apiVersion: 'monitoring.coreos.com/v1', | ||||
|         kind: 'ServiceMonitor', | ||||
|         metadata: { | ||||
|           name: 'ups-exporter', | ||||
|           namespace: $._config.namespace, | ||||
|           labels: { | ||||
|             'k8s-app': 'ups-exporter', | ||||
|           }, | ||||
|         }, | ||||
|         spec: { | ||||
|           jobLabel: 'k8s-app', | ||||
|           selector: { | ||||
|             matchLabels: { | ||||
|             'k8s-app': 'ups-exporter', | ||||
|             }, | ||||
|           }, | ||||
|           endpoints: [ | ||||
|             { | ||||
|             port: 'metrics', | ||||
|             scheme: 'http', | ||||
|             interval: '30s', | ||||
|             }, | ||||
|           ], | ||||
|         }, | ||||
|       }, | ||||
| 
 | ||||
|     service: | ||||
|       local service = k.core.v1.service; | ||||
|       local servicePort = k.core.v1.service.mixin.spec.portsType; | ||||
| 
 | ||||
|       local upsExporterPort = servicePort.newNamed('metrics', 9099, 9099); | ||||
| 
 | ||||
|       service.new('ups-exporter', null, upsExporterPort) + | ||||
|       service.mixin.metadata.withNamespace($._config.namespace) + | ||||
|       service.mixin.metadata.withLabels({ 'k8s-app': 'ups-exporter' }) + | ||||
|       service.mixin.spec.withClusterIp('None'), | ||||
| 
 | ||||
|     endpoints: | ||||
|       local endpoints = k.core.v1.endpoints; | ||||
|       local endpointSubset = endpoints.subsetsType; | ||||
|       local endpointPort = endpointSubset.portsType; | ||||
| 
 | ||||
|       local upsPort = endpointPort.new() + | ||||
|                       endpointPort.withName('metrics') + | ||||
|                       endpointPort.withPort(9099) + | ||||
|                       endpointPort.withProtocol('TCP'); | ||||
| 
 | ||||
|       local subset = endpointSubset.new() + | ||||
|                       endpointSubset.withAddresses([ | ||||
|                           { ip: IP } | ||||
|                           for IP in $._config.ups.ips | ||||
|                           ]) + | ||||
|                       endpointSubset.withPorts(upsPort); | ||||
| 
 | ||||
|       endpoints.new() + | ||||
|       endpoints.mixin.metadata.withName('ups-exporter') + | ||||
|       endpoints.mixin.metadata.withNamespace($._config.namespace) + | ||||
|       endpoints.mixin.metadata.withLabels({ 'k8s-app': 'ups-exporter' }) + | ||||
|       endpoints.withSubsets(subset), | ||||
|   }, | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user