KVM を libvirt でホストしていて、prometheus と grafana で観測したい場合。 exporter の実装は 3 種類みつかる。流儀が異なり、メトリクスが異なるので注意。
- libvirt_exporter (Go)
- grafana json + prometheus recording rule
- prometheus の設定ファイルで recording rule を有効化します。
- job 名は
libvirt_exporter
KVM を libvirt でホストしていて、prometheus と grafana で観測したい場合。 exporter の実装は 3 種類みつかる。流儀が異なり、メトリクスが異なるので注意。
libvirt_exporter| def configuration = new org.sonatype.nexus.repository.config.Configuration() | |
| configuration.setAttributes( | |
| 'maven': [ | |
| 'versionPolicy': 'RELEASE', | |
| 'layoutPolicy': 'STRICT' | |
| ], | |
| 'proxy': [ | |
| 'remoteUrl': 'http://localhost:8000', | |
| 'contentMaxAge': -1, | |
| 'metadataMaxAge': 1440 |
| import org.sonatype.nexus.common.entity.* | |
| import org.sonatype.nexus.security.* | |
| import org.sonatype.nexus.security.authz.* | |
| import org.sonatype.nexus.selector.* | |
| import com.google.common.collect.ImmutableMap | |
| // use container.lookup to fetch internal APIs we need to use | |
| def selectorManager = container.lookup(SelectorManager.class.name) | |
| def securitySystem = container.lookup(SecuritySystem.class.name) |
| import org.sonatype.nexus.repository.storage.Asset | |
| import org.sonatype.nexus.repository.storage.Query | |
| import org.sonatype.nexus.repository.storage.StorageFacet | |
| import groovy.json.JsonOutput | |
| import groovy.json.JsonSlurper | |
| def request = new JsonSlurper().parseText(args) | |
| assert request.repoName: 'repoName parameter is required' | |
| assert request.startDate: 'startDate parameter is required, format: yyyy-mm-dd' |