├── .circleci └── config.yml ├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── enhancement-request.md ├── dco.yml ├── dependabot.yml └── workflows │ ├── close-stale-issues.yml │ ├── dependabot-automerge.yml │ ├── deploy-docs.yml │ ├── gradle-wrapper-validation.yml │ ├── post-release-workflow.yml │ └── release-train-workflow.yml ├── .gitignore ├── .idea └── icon.svg ├── .springjavaformatconfig ├── CONTRIBUTING.md ├── LICENSE ├── NOTES.md ├── NOTICE ├── README.md ├── SUPPORT.adoc ├── benchmarks └── benchmarks-core │ ├── build.gradle │ └── src │ └── jmh │ ├── .gitignore │ ├── java │ └── io │ │ └── micrometer │ │ └── benchmark │ │ ├── compare │ │ ├── CompareCountersWithOtherLibraries.java │ │ ├── CompareHistogramsWithOtherLibraries.java │ │ └── CompareOTLPHistograms.java │ │ └── core │ │ ├── CounterBenchmark.java │ │ ├── DefaultLongTaskTimerBenchmark.java │ │ ├── GaugeBenchmark.java │ │ ├── KeyValuesBenchmark.java │ │ ├── KeyValuesMergeBenchmark.java │ │ ├── LogbackMetricsBenchmark.java │ │ ├── MeterRegistrationBenchmark.java │ │ ├── MeterRemovalBenchmark.java │ │ ├── ObservationBenchmark.java │ │ ├── ObservationKeyValuesBenchmark.java │ │ ├── TagsBenchmark.java │ │ ├── TagsMergeBenchmark.java │ │ └── TimerBenchmark.java │ └── resources │ └── logback.xml ├── build.gradle ├── concurrency-tests ├── build.gradle └── src │ └── jcstress │ ├── java │ └── io │ │ └── micrometer │ │ └── concurrencytests │ │ ├── Base2ExponentialHistogramConcurrencyTests.java │ │ ├── MeterRegistryConcurrencyTest.java │ │ ├── ObservationContextConcurrencyTest.java │ │ └── PrometheusMeterRegistryConcurrencyTest.java │ └── resources │ └── logback.xml ├── config └── checkstyle │ ├── checkstyle-suppressions.xml │ └── checkstyle.xml ├── docs ├── antora-playbook.yml ├── antora.yml ├── build.gradle ├── modules │ └── ROOT │ │ ├── assets │ │ └── images │ │ │ ├── concepts │ │ │ ├── prometheus-counter-norate.png │ │ │ ├── prometheus-counter.png │ │ │ └── rate-normalizing.png │ │ │ ├── implementations │ │ │ ├── appoptics-timer-average.png │ │ │ ├── appoptics-timer.png │ │ │ ├── atlas-counter.png │ │ │ ├── atlas-long-task-timer.png │ │ │ ├── atlas-timer.png │ │ │ ├── datadog-counter.png │ │ │ ├── datadog-long-task-timer.png │ │ │ ├── datadog-select-tags.png │ │ │ ├── datadog-timer-metrics.png │ │ │ ├── datadog-timer.png │ │ │ ├── ganglia-counter.png │ │ │ ├── graphite-counter.png │ │ │ ├── humio-timer.png │ │ │ ├── influx-counter.png │ │ │ ├── influx-long-task-timer.png │ │ │ ├── influx-timer.png │ │ │ ├── jmx-counter.png │ │ │ ├── new-relic-keys.png │ │ │ ├── new-relic-timer-latency.png │ │ │ ├── new-relic-timer-percentiles.png │ │ │ ├── new-relic-timer-sla.png │ │ │ ├── new-relic-timer-throughput.png │ │ │ ├── prometheus-counter-norate.png │ │ │ ├── prometheus-counter.png │ │ │ ├── prometheus-dashboard.png │ │ │ ├── prometheus-long-task-timer.png │ │ │ ├── prometheus-timer.png │ │ │ ├── quantile-algorithms.png │ │ │ ├── signalfx-timer-latency-query.png │ │ │ ├── signalfx-timer-latency.png │ │ │ ├── signalfx-timer-percentiles.png │ │ │ ├── signalfx-timer-sla.png │ │ │ ├── signalfx-timer-throughput.png │ │ │ ├── wavefront-counter-rate.png │ │ │ ├── wavefront-counter.png │ │ │ ├── wavefront-timer-latency.png │ │ │ ├── wavefront-timer-sla.png │ │ │ └── wavefront-timer-throughput.png │ │ │ ├── logo.png │ │ │ └── reference │ │ │ └── cache │ │ │ ├── grafana-guava-miss-ratio.png │ │ │ ├── prometheus-guava-cache-ratio.png │ │ │ └── prometheus-guava-cache.png │ │ ├── examples │ │ ├── core-test │ │ ├── docs-src │ │ ├── micrometer-java11-test │ │ └── micrometer-test │ │ ├── nav.adoc │ │ └── pages │ │ ├── concepts.adoc │ │ ├── concepts │ │ ├── counters.adoc │ │ ├── distribution-summaries.adoc │ │ ├── gauges.adoc │ │ ├── histogram-quantiles.adoc │ │ ├── implementations.adoc │ │ ├── long-task-timers.adoc │ │ ├── meter-filters.adoc │ │ ├── meter-provider.adoc │ │ ├── meters.adoc │ │ ├── naming.adoc │ │ ├── rate-aggregation.adoc │ │ ├── registry.adoc │ │ └── timers.adoc │ │ ├── guides.adoc │ │ ├── guides │ │ ├── console-reporter.adoc │ │ ├── custom-meter-registry.adoc │ │ └── http-sender-resilience4j-retry.adoc │ │ ├── implementations.adoc │ │ ├── implementations │ │ ├── _install.adoc │ │ ├── appOptics.adoc │ │ ├── atlas.adoc │ │ ├── azure-monitor.adoc │ │ ├── cloudwatch.adoc │ │ ├── datadog.adoc │ │ ├── dynatrace.adoc │ │ ├── elastic.adoc │ │ ├── ganglia.adoc │ │ ├── graphite.adoc │ │ ├── hierarchical-name-mapping.adoc │ │ ├── humio.adoc │ │ ├── influx.adoc │ │ ├── instana.adoc │ │ ├── jmx.adoc │ │ ├── kairos.adoc │ │ ├── new-relic.adoc │ │ ├── otlp.adoc │ │ ├── prometheus.adoc │ │ ├── signalFx.adoc │ │ ├── stackdriver.adoc │ │ ├── statsD.adoc │ │ └── wavefront.adoc │ │ ├── index.adoc │ │ ├── installing.adoc │ │ ├── observation.adoc │ │ ├── observation │ │ ├── components.adoc │ │ ├── installing.adoc │ │ ├── instrumenting.adoc │ │ ├── introduction.adoc │ │ ├── projects.adoc │ │ └── testing.adoc │ │ ├── overview.adoc │ │ ├── reference.adoc │ │ └── reference │ │ ├── cache.adoc │ │ ├── commons-pool.adoc │ │ ├── db.adoc │ │ ├── grpc.adoc │ │ ├── httpcomponents.adoc │ │ ├── java-httpclient.adoc │ │ ├── jetty.adoc │ │ ├── jms.adoc │ │ ├── jvm.adoc │ │ ├── kafka.adoc │ │ ├── logging.adoc │ │ ├── mongodb.adoc │ │ ├── netty.adoc │ │ ├── okhttpclient.adoc │ │ ├── system.adoc │ │ └── tomcat.adoc └── src │ └── test │ ├── java │ └── io │ │ └── micrometer │ │ └── docs │ │ ├── metrics │ │ ├── CountedAspectTest.java │ │ ├── OtlpMeterRegistryCustomizationTest.java │ │ ├── SpelValueExpressionResolver.java │ │ └── TimedAspectTest.java │ │ ├── netty │ │ └── NettyMetricsTests.java │ │ └── observation │ │ ├── ObservationConfiguringTests.java │ │ ├── ObservationHandlerTests.java │ │ ├── ObservationInstrumentingTests.java │ │ ├── ObservationTestingTests.java │ │ └── messaging │ │ ├── ConsumerInterceptorConfig.java │ │ ├── ObservationMessagingIntegrationTest.java │ │ └── ProducerInterceptorConfig.java │ └── resources │ ├── docs-generator-build.gradle │ └── docs-generator-pom.xml ├── gradle.properties ├── gradle ├── deploy.sh ├── libs.versions.toml ├── licenseHeader.txt └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── implementations ├── micrometer-registry-appoptics │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── appoptics │ │ │ ├── AppOpticsConfig.java │ │ │ ├── AppOpticsMeterRegistry.java │ │ │ ├── AppOpticsNamingConvention.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── appoptics │ │ ├── AppOpticsConfigTest.java │ │ ├── AppOpticsMeterRegistryCompatibilityTest.java │ │ └── AppOpticsMeterRegistryTest.java ├── micrometer-registry-atlas │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── atlas │ │ │ ├── AtlasMeterRegistry.java │ │ │ ├── AtlasNamingConvention.java │ │ │ ├── AtlasUtils.java │ │ │ ├── SpectatorCounter.java │ │ │ ├── SpectatorDistributionSummary.java │ │ │ ├── SpectatorGauge.java │ │ │ ├── SpectatorLongTaskTimer.java │ │ │ ├── SpectatorTimer.java │ │ │ ├── SpectatorToDoubleGauge.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── atlas │ │ │ ├── AtlasMeterRegistryCompatibilityTest.java │ │ │ ├── AtlasMeterRegistryTest.java │ │ │ ├── AtlasNamingConventionTest.java │ │ │ └── SpectatorTimerTest.java │ │ └── resources │ │ └── logback.xml ├── micrometer-registry-azure-monitor │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── azuremonitor │ │ │ ├── AzureMonitorConfig.java │ │ │ ├── AzureMonitorMeterRegistry.java │ │ │ ├── AzureMonitorNamingConvention.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── azuremonitor │ │ ├── AzureMonitorConfigTest.java │ │ ├── AzureMonitorMeterRegistryCompatibilityKit.java │ │ ├── AzureMonitorMeterRegistryTest.java │ │ └── AzureMonitorNamingConventionTest.java ├── micrometer-registry-cloudwatch2 │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── cloudwatch2 │ │ │ ├── CloudWatchConfig.java │ │ │ ├── CloudWatchMeterRegistry.java │ │ │ ├── CloudWatchNamingConvention.java │ │ │ ├── CloudWatchUtils.java │ │ │ ├── MetricDatumPartition.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── cloudwatch2 │ │ ├── CloudWatchConfigTest.java │ │ ├── CloudWatchMeterRegistryCompatibilityTest.java │ │ ├── CloudWatchMeterRegistryTest.java │ │ ├── CloudWatchNamingConventionTest.java │ │ └── CloudWatchUtilsTest.java ├── micrometer-registry-datadog │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── datadog │ │ │ ├── DatadogConfig.java │ │ │ ├── DatadogMeterRegistry.java │ │ │ ├── DatadogMetricMetadata.java │ │ │ ├── DatadogNamingConvention.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── datadog │ │ │ ├── DatadogConfigTest.java │ │ │ ├── DatadogMeterRegistryCompatibilityTest.java │ │ │ ├── DatadogMeterRegistryTest.java │ │ │ ├── DatadogMetricMetadataTest.java │ │ │ └── DatadogNamingConventionTest.java │ │ └── resources │ │ └── logback.xml ├── micrometer-registry-dynatrace │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── dynatrace │ │ │ ├── AbstractDynatraceExporter.java │ │ │ ├── DynatraceApiVersion.java │ │ │ ├── DynatraceConfig.java │ │ │ ├── DynatraceMeterRegistry.java │ │ │ ├── DynatraceNamingConvention.java │ │ │ ├── package-info.java │ │ │ ├── types │ │ │ ├── DynatraceDistributionSummary.java │ │ │ ├── DynatraceLongTaskTimer.java │ │ │ ├── DynatraceSummary.java │ │ │ ├── DynatraceSummarySnapshot.java │ │ │ ├── DynatraceSummarySnapshotSupport.java │ │ │ ├── DynatraceTimer.java │ │ │ └── package-info.java │ │ │ ├── v1 │ │ │ ├── DynatraceBatchedPayload.java │ │ │ ├── DynatraceCustomMetric.java │ │ │ ├── DynatraceExporterV1.java │ │ │ ├── DynatraceMetricDefinition.java │ │ │ ├── DynatraceNamingConventionV1.java │ │ │ ├── DynatraceTimeSeries.java │ │ │ └── package-info.java │ │ │ └── v2 │ │ │ ├── DynatraceExporterV2.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── dynatrace │ │ ├── DynatraceConfigTest.java │ │ ├── DynatraceMeterRegistryCompatibilityTest.java │ │ ├── DynatraceMeterRegistryTest.java │ │ ├── DynatraceNamingConventionTest.java │ │ ├── types │ │ ├── DynatraceDistributionSummaryTest.java │ │ ├── DynatraceLongTaskTimerTest.java │ │ ├── DynatraceSummaryTest.java │ │ └── DynatraceTimerTest.java │ │ ├── v1 │ │ ├── DynatraceExporterV1Test.java │ │ ├── DynatraceMetricDefinitionTest.java │ │ ├── DynatraceNamingConventionV1Test.java │ │ └── DynatraceTimeSeriesTest.java │ │ └── v2 │ │ └── DynatraceExporterV2Test.java ├── micrometer-registry-elastic │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── elastic │ │ │ ├── DefaultIndexTemplateCreator.java │ │ │ ├── ElasticConfig.java │ │ │ ├── ElasticMeterRegistry.java │ │ │ ├── ElasticNamingConvention.java │ │ │ ├── IndexTemplateCreator.java │ │ │ ├── LegacyIndexTemplateCreator.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── elastic │ │ │ ├── AbstractElasticsearchApiKeyIntegrationTest.java │ │ │ ├── AbstractElasticsearchMeterRegistryIntegrationTest.java │ │ │ ├── ElasticConfigTest.java │ │ │ ├── ElasticMeterRegistryCompatibilityTest.java │ │ │ ├── ElasticMeterRegistryTest.java │ │ │ ├── ElasticNamingConventionTest.java │ │ │ ├── Elasticsearch7ApiKeyIntegrationTest.java │ │ │ ├── Elasticsearch8ApiKeyIntegrationTest.java │ │ │ ├── ElasticsearchMeterRegistryElasticsearch7IntegrationTest.java │ │ │ └── ElasticsearchMeterRegistryElasticsearch8IntegrationTest.java │ │ └── resources │ │ └── logback.xml ├── micrometer-registry-ganglia │ ├── README.adoc │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── ganglia │ │ │ ├── GangliaConfig.java │ │ │ ├── GangliaMeterRegistry.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── ganglia │ │ ├── GangliaConfigTest.java │ │ ├── GangliaMeterRegistryCompatibilityTest.java │ │ └── GangliaMeterRegistryTest.java ├── micrometer-registry-graphite │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── graphite │ │ │ ├── GraphiteConfig.java │ │ │ ├── GraphiteDimensionalNameMapper.java │ │ │ ├── GraphiteDimensionalNamingConvention.java │ │ │ ├── GraphiteHierarchicalNameMapper.java │ │ │ ├── GraphiteHierarchicalNamingConvention.java │ │ │ ├── GraphiteMeterRegistry.java │ │ │ ├── GraphiteProtocol.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── graphite │ │ │ ├── GraphiteConfigTest.java │ │ │ ├── GraphiteDimensionalNameMapperTest.java │ │ │ ├── GraphiteDimensionalNamingConventionTest.java │ │ │ ├── GraphiteHierarchicalNameMapperTest.java │ │ │ ├── GraphiteHierarchicalNamingConventionTest.java │ │ │ ├── GraphiteMeterRegistryCompatibilityTest.java │ │ │ └── GraphiteMeterRegistryTest.java │ │ └── resources │ │ └── logback.xml ├── micrometer-registry-health │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── health │ │ │ ├── HealthConfig.java │ │ │ ├── HealthMeterRegistry.java │ │ │ ├── QueryUtils.java │ │ │ ├── ServiceLevelObjective.java │ │ │ ├── objectives │ │ │ ├── JvmServiceLevelObjectives.java │ │ │ ├── OperatingSystemServiceLevelObjectives.java │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── health │ │ ├── HealthMeterRegistryTest.java │ │ └── QueryTest.java ├── micrometer-registry-humio │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── humio │ │ │ ├── HumioConfig.java │ │ │ ├── HumioMeterRegistry.java │ │ │ ├── HumioNamingConvention.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── humio │ │ │ ├── HumioConfigTest.java │ │ │ ├── HumioMeterRegistryCompatibilityTest.java │ │ │ ├── HumioMeterRegistryTest.java │ │ │ └── HumioNamingConventionTest.java │ │ └── resources │ │ └── logback.xml ├── micrometer-registry-influx │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── influx │ │ │ ├── CreateDatabaseQueryBuilder.java │ │ │ ├── InfluxApiVersion.java │ │ │ ├── InfluxConfig.java │ │ │ ├── InfluxConsistency.java │ │ │ ├── InfluxMeterRegistry.java │ │ │ ├── InfluxNamingConvention.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── influx │ │ ├── CreateDatabaseQueryBuilderTest.java │ │ ├── InfluxConfigTest.java │ │ ├── InfluxMeterRegistryCompatibilityTest.java │ │ ├── InfluxMeterRegistryFieldTest.java │ │ ├── InfluxMeterRegistryTest.java │ │ ├── InfluxMeterRegistryVersionsTest.java │ │ └── InfluxNamingConventionTest.java ├── micrometer-registry-jmx │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── jmx │ │ │ ├── JmxConfig.java │ │ │ ├── JmxMeterRegistry.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── jmx │ │ │ ├── JmxMeterRegistryCompatibilityTest.java │ │ │ └── JmxMeterRegistryTest.java │ │ └── resources │ │ └── logback.xml ├── micrometer-registry-kairos │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── kairos │ │ │ ├── KairosConfig.java │ │ │ ├── KairosMeterRegistry.java │ │ │ ├── KairosNamingConvention.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── kairos │ │ ├── KairosConfigTest.java │ │ ├── KairosMeterRegistryCompatibilityTest.java │ │ ├── KairosMeterRegistryTest.java │ │ └── KairosNamingConventionTest.java ├── micrometer-registry-new-relic │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── newrelic │ │ │ ├── ClientProviderType.java │ │ │ ├── NewRelicClientProvider.java │ │ │ ├── NewRelicConfig.java │ │ │ ├── NewRelicInsightsAgentClientProvider.java │ │ │ ├── NewRelicInsightsApiClientProvider.java │ │ │ ├── NewRelicMeterRegistry.java │ │ │ ├── NewRelicNamingConvention.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── newrelic │ │ ├── NewRelicConfigTest.java │ │ ├── NewRelicMeterRegistryCompatibilityTest.java │ │ ├── NewRelicMeterRegistryTest.java │ │ └── NewRelicNamingConventionTest.java ├── micrometer-registry-opentsdb │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── opentsdb │ │ │ ├── OpenTSDBConfig.java │ │ │ ├── OpenTSDBDistributionSummary.java │ │ │ ├── OpenTSDBFlavor.java │ │ │ ├── OpenTSDBMeterRegistry.java │ │ │ ├── OpenTSDBNamingConvention.java │ │ │ ├── OpenTSDBTimer.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── opentsdb │ │ ├── OpenTSDBConfigTest.java │ │ ├── OpenTSDBMeterRegistryCompatibilityTest.java │ │ ├── OpenTSDBMeterRegistryTest.java │ │ └── OpenTSDBNamingConventionTest.java ├── micrometer-registry-otlp │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── registry │ │ │ └── otlp │ │ │ ├── AggregationTemporality.java │ │ │ ├── HistogramFlavor.java │ │ │ ├── OtlpConfig.java │ │ │ ├── OtlpCumulativeCounter.java │ │ │ ├── OtlpCumulativeDistributionSummary.java │ │ │ ├── OtlpCumulativeFunctionCounter.java │ │ │ ├── OtlpCumulativeFunctionTimer.java │ │ │ ├── OtlpCumulativeLongTaskTimer.java │ │ │ ├── OtlpCumulativeTimer.java │ │ │ ├── OtlpHistogramSupport.java │ │ │ ├── OtlpHttpMetricsSender.java │ │ │ ├── OtlpMeterRegistry.java │ │ │ ├── OtlpMetricConverter.java │ │ │ ├── OtlpMetricsSender.java │ │ │ ├── OtlpStepBucketHistogram.java │ │ │ ├── OtlpStepDistributionSummary.java │ │ │ ├── OtlpStepTimer.java │ │ │ ├── OtlpStepTuple2.java │ │ │ ├── StartTimeAwareMeter.java │ │ │ ├── StepMax.java │ │ │ ├── internal │ │ │ ├── Base2ExponentialHistogram.java │ │ │ ├── CircularCountHolder.java │ │ │ ├── CumulativeBase2ExponentialHistogram.java │ │ │ ├── DefaultExponentialHistogramSnapShot.java │ │ │ ├── DeltaBase2ExponentialHistogram.java │ │ │ ├── ExponentialHistogramSnapShot.java │ │ │ ├── IndexProvider.java │ │ │ ├── IndexProviderFactory.java │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── registry │ │ │ └── otlp │ │ │ ├── OTelCollectorIntegrationTest.java │ │ │ ├── OtlpConfigTest.java │ │ │ ├── OtlpCumulativeMeterRegistryCompatibilityTest.java │ │ │ ├── OtlpCumulativeMeterRegistryTest.java │ │ │ ├── OtlpDeltaMeterRegistryCompatibilityTest.java │ │ │ ├── OtlpDeltaMeterRegistryTest.java │ │ │ ├── OtlpHttpMetricsSenderTests.java │ │ │ ├── OtlpMeterRegistryExportTest.java │ │ │ ├── OtlpMeterRegistryTest.java │ │ │ ├── OtlpMetricConverterTest.java │ │ │ ├── StepMaxTest.java │ │ │ └── internal │ │ │ ├── Base2ExponentialHistogramTest.java │ │ │ ├── CumulativeBase2ExponentialHistogramTest.java │ │ │ ├── DeltaBase2ExponentialHistogramTest.java │ │ │ └── IndexProviderFactoryTest.java │ │ └── resources │ │ ├── collector-config.yml │ │ └── otlp-config.properties ├── micrometer-registry-prometheus-simpleclient │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── prometheus │ │ │ ├── EnsuresNonNullIf.java │ │ │ ├── HistogramFlavor.java │ │ │ ├── MicrometerCollector.java │ │ │ ├── PrometheusConfig.java │ │ │ ├── PrometheusCounter.java │ │ │ ├── PrometheusDistributionSummary.java │ │ │ ├── PrometheusDurationNamingConvention.java │ │ │ ├── PrometheusHistogram.java │ │ │ ├── PrometheusMeterRegistry.java │ │ │ ├── PrometheusNamingConvention.java │ │ │ ├── PrometheusRenameFilter.java │ │ │ ├── PrometheusTimer.java │ │ │ ├── RequiresNonNull.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── prometheus │ │ ├── MicrometerCollectorTest.java │ │ ├── PrometheusConfigTest.java │ │ ├── PrometheusDurationNamingConventionTest.java │ │ ├── PrometheusMeterRegistryCompatibilityTest.java │ │ ├── PrometheusMeterRegistryTest.java │ │ ├── PrometheusNamingConventionTest.java │ │ └── PrometheusRenameFilterTest.java ├── micrometer-registry-prometheus │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── prometheusmetrics │ │ │ ├── DefaultExemplarSamplerFactory.java │ │ │ ├── ExemplarSamplerFactory.java │ │ │ ├── MicrometerCollector.java │ │ │ ├── PrometheusConfig.java │ │ │ ├── PrometheusCounter.java │ │ │ ├── PrometheusDistributionSummary.java │ │ │ ├── PrometheusDurationNamingConvention.java │ │ │ ├── PrometheusHistogram.java │ │ │ ├── PrometheusMeterRegistry.java │ │ │ ├── PrometheusNamingConvention.java │ │ │ ├── PrometheusRenameFilter.java │ │ │ ├── PrometheusTimer.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── prometheusmetrics │ │ │ ├── MicrometerCollectorTest.java │ │ │ ├── PrometheusConfigTest.java │ │ │ ├── PrometheusDurationNamingConventionTest.java │ │ │ ├── PrometheusMeterRegistryCompatibilityTest.java │ │ │ ├── PrometheusMeterRegistryIntegrationTest.java │ │ │ ├── PrometheusMeterRegistryTest.java │ │ │ ├── PrometheusNamingConventionTest.java │ │ │ └── PrometheusRenameFilterTest.java │ │ └── resources │ │ └── prometheus.yml ├── micrometer-registry-signalfx │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── signalfx │ │ │ ├── CumulativeHistogramConfigUtil.java │ │ │ ├── SignalFxConfig.java │ │ │ ├── SignalFxMeterRegistry.java │ │ │ ├── SignalFxNamingConvention.java │ │ │ ├── SignalfxDistributionSummary.java │ │ │ ├── SignalfxTimer.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── signalfx │ │ ├── SignalFxConfigTest.java │ │ ├── SignalFxMeterRegistryCompatibilityTest.java │ │ ├── SignalFxMeterRegistryTest.java │ │ └── SignalFxNamingConventionTest.java ├── micrometer-registry-stackdriver │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── stackdriver │ │ │ ├── StackdriverConfig.java │ │ │ ├── StackdriverDistributionSummary.java │ │ │ ├── StackdriverHistogramUtil.java │ │ │ ├── StackdriverMeterRegistry.java │ │ │ ├── StackdriverNamingConvention.java │ │ │ ├── StackdriverTimer.java │ │ │ ├── UserAgentHeaderProvider.java │ │ │ ├── package-info.java │ │ │ └── util │ │ │ ├── ClearCustomMetricDescriptors.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── stackdriver │ │ │ ├── MetricSchemaCompatibilityTest.java │ │ │ ├── MetricTypePrefixTest.java │ │ │ ├── StackdriverConfigTest.java │ │ │ ├── StackdriverIntegrationTest.java │ │ │ ├── StackdriverMeterRegistryCompatibilityTest.java │ │ │ ├── StackdriverMeterRegistryTest.java │ │ │ └── StackdriverNamingConventionTest.java │ │ └── resources │ │ └── logback.xml ├── micrometer-registry-statsd │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── statsd │ │ │ ├── StatsdConfig.java │ │ │ ├── StatsdCounter.java │ │ │ ├── StatsdDistributionSummary.java │ │ │ ├── StatsdFlavor.java │ │ │ ├── StatsdFunctionCounter.java │ │ │ ├── StatsdFunctionTimer.java │ │ │ ├── StatsdGauge.java │ │ │ ├── StatsdLineBuilder.java │ │ │ ├── StatsdLongTaskTimer.java │ │ │ ├── StatsdMeterRegistry.java │ │ │ ├── StatsdMetrics.java │ │ │ ├── StatsdPollable.java │ │ │ ├── StatsdProtocol.java │ │ │ ├── StatsdTimer.java │ │ │ ├── internal │ │ │ ├── BufferingFlux.java │ │ │ ├── DatadogStatsdLineBuilder.java │ │ │ ├── EtsyStatsdLineBuilder.java │ │ │ ├── FlavorStatsdLineBuilder.java │ │ │ ├── LogbackMetricsSuppressingFluxSink.java │ │ │ ├── SysdigStatsdLineBuilder.java │ │ │ ├── TelegrafStatsdLineBuilder.java │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ └── test │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── statsd │ │ │ ├── StatsdConfigTest.java │ │ │ ├── StatsdGaugeTest.java │ │ │ ├── StatsdMeterRegistryCompatibilityTest.java │ │ │ ├── StatsdMeterRegistryPublishTest.java │ │ │ ├── StatsdMeterRegistryTest.java │ │ │ └── internal │ │ │ ├── BufferingFluxTest.java │ │ │ ├── DatadogStatsdLineBuilderTest.java │ │ │ ├── EtsyStatsdLineBuilderTest.java │ │ │ ├── SysdigStatsdLineBuilderTest.java │ │ │ └── TelegrafStatsdLineBuilderTest.java │ │ └── resources │ │ └── logback.xml └── micrometer-registry-wavefront │ ├── build.gradle │ └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ └── wavefront │ │ ├── WavefrontConfig.java │ │ ├── WavefrontDistributionSummary.java │ │ ├── WavefrontLongTaskTimer.java │ │ ├── WavefrontMeterRegistry.java │ │ ├── WavefrontNamingConvention.java │ │ ├── WavefrontTimer.java │ │ └── package-info.java │ └── test │ ├── java │ └── io │ │ └── micrometer │ │ └── wavefront │ │ ├── WavefrontConfigTest.java │ │ ├── WavefrontMeterRegistryCompatibilityTest.java │ │ ├── WavefrontMeterRegistryTest.java │ │ └── WavefrontNamingConventionTest.java │ └── resources │ ├── invalid.properties │ └── valid.properties ├── micrometer-bom └── build.gradle ├── micrometer-commons ├── build.gradle └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ └── common │ │ ├── ImmutableKeyValue.java │ │ ├── KeyValue.java │ │ ├── KeyValues.java │ │ ├── ValidatedKeyValue.java │ │ ├── annotation │ │ ├── AnnotatedObject.java │ │ ├── AnnotationHandler.java │ │ ├── AnnotationUtils.java │ │ ├── NoOpValueResolver.java │ │ ├── ValueExpressionResolver.java │ │ ├── ValueResolver.java │ │ └── package-info.java │ │ ├── docs │ │ ├── KeyName.java │ │ └── package-info.java │ │ ├── lang │ │ ├── NonNull.java │ │ ├── NonNullApi.java │ │ ├── NonNullFields.java │ │ ├── Nullable.java │ │ ├── internal │ │ │ ├── Contract.java │ │ │ └── package-info.java │ │ └── package-info.java │ │ ├── package-info.java │ │ └── util │ │ ├── StringUtils.java │ │ ├── internal │ │ └── logging │ │ │ ├── AbstractInternalLogger.java │ │ │ ├── FormattingTuple.java │ │ │ ├── InternalLogLevel.java │ │ │ ├── InternalLogger.java │ │ │ ├── InternalLoggerFactory.java │ │ │ ├── JdkLogger.java │ │ │ ├── JdkLoggerFactory.java │ │ │ ├── LocationAwareSlf4JLogger.java │ │ │ ├── MessageFormatter.java │ │ │ ├── Slf4JLogger.java │ │ │ ├── Slf4JLoggerFactory.java │ │ │ ├── WarnThenDebugLogger.java │ │ │ └── package-info.java │ │ └── package-info.java │ └── test │ └── java │ └── io │ └── micrometer │ └── common │ ├── KeyValuesTest.java │ ├── annotation │ └── NoOpValueResolverTests.java │ └── util │ └── StringUtilsTest.java ├── micrometer-core ├── build.gradle └── src │ ├── main │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── core │ │ │ ├── annotation │ │ │ ├── Counted.java │ │ │ ├── Incubating.java │ │ │ ├── Timed.java │ │ │ ├── TimedSet.java │ │ │ └── package-info.java │ │ │ ├── aop │ │ │ ├── CountedAspect.java │ │ │ ├── CountedMeterTagAnnotationHandler.java │ │ │ ├── MeterTag.java │ │ │ ├── MeterTagAnnotationHandler.java │ │ │ ├── MeterTagSupport.java │ │ │ ├── MeterTags.java │ │ │ ├── TimedAspect.java │ │ │ └── package-info.java │ │ │ ├── instrument │ │ │ ├── AbstractDistributionSummary.java │ │ │ ├── AbstractMeter.java │ │ │ ├── AbstractTimer.java │ │ │ ├── AbstractTimerBuilder.java │ │ │ ├── Clock.java │ │ │ ├── Counter.java │ │ │ ├── DistributionSummary.java │ │ │ ├── FunctionCounter.java │ │ │ ├── FunctionTimer.java │ │ │ ├── Gauge.java │ │ │ ├── HighCardinalityTagsDetector.java │ │ │ ├── ImmutableTag.java │ │ │ ├── LongTaskTimer.java │ │ │ ├── Measurement.java │ │ │ ├── Meter.java │ │ │ ├── MeterRegistry.java │ │ │ ├── Metrics.java │ │ │ ├── MockClock.java │ │ │ ├── MultiGauge.java │ │ │ ├── Statistic.java │ │ │ ├── StrongReferenceGaugeFunction.java │ │ │ ├── Tag.java │ │ │ ├── Tags.java │ │ │ ├── TimeGauge.java │ │ │ ├── Timer.java │ │ │ ├── binder │ │ │ │ ├── BaseUnits.java │ │ │ │ ├── MeterBinder.java │ │ │ │ ├── cache │ │ │ │ │ ├── CacheMeterBinder.java │ │ │ │ │ ├── CaffeineCacheMetrics.java │ │ │ │ │ ├── CaffeineStatsCounter.java │ │ │ │ │ ├── EhCache2Metrics.java │ │ │ │ │ ├── GuavaCacheMetrics.java │ │ │ │ │ ├── HazelcastCacheMetrics.java │ │ │ │ │ ├── HazelcastIMapAdapter.java │ │ │ │ │ ├── JCacheMetrics.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── commonspool2 │ │ │ │ │ ├── CommonsObjectPool2Metrics.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── db │ │ │ │ │ ├── DatabaseTableMetrics.java │ │ │ │ │ ├── JooqExecuteListener.java │ │ │ │ │ ├── MetricsDSLContext.java │ │ │ │ │ ├── PostgreSQLDatabaseMetrics.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── grpc │ │ │ │ │ ├── AbstractMetricCollectingInterceptor.java │ │ │ │ │ ├── DefaultGrpcClientObservationConvention.java │ │ │ │ │ ├── DefaultGrpcServerObservationConvention.java │ │ │ │ │ ├── GrpcClientObservationContext.java │ │ │ │ │ ├── GrpcClientObservationConvention.java │ │ │ │ │ ├── GrpcObservationDocumentation.java │ │ │ │ │ ├── GrpcServerObservationContext.java │ │ │ │ │ ├── GrpcServerObservationConvention.java │ │ │ │ │ ├── MetricCollectingClientCall.java │ │ │ │ │ ├── MetricCollectingClientCallListener.java │ │ │ │ │ ├── MetricCollectingClientInterceptor.java │ │ │ │ │ ├── MetricCollectingServerCall.java │ │ │ │ │ ├── MetricCollectingServerCallListener.java │ │ │ │ │ ├── MetricCollectingServerInterceptor.java │ │ │ │ │ ├── ObservationGrpcClientCall.java │ │ │ │ │ ├── ObservationGrpcClientCallListener.java │ │ │ │ │ ├── ObservationGrpcClientInterceptor.java │ │ │ │ │ ├── ObservationGrpcServerCall.java │ │ │ │ │ ├── ObservationGrpcServerCallListener.java │ │ │ │ │ ├── ObservationGrpcServerInterceptor.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── http │ │ │ │ │ ├── DefaultHttpJakartaServletRequestTagsProvider.java │ │ │ │ │ ├── DefaultHttpServletRequestTagsProvider.java │ │ │ │ │ ├── HttpJakartaServletRequestTags.java │ │ │ │ │ ├── HttpJakartaServletRequestTagsProvider.java │ │ │ │ │ ├── HttpRequestTags.java │ │ │ │ │ ├── HttpServletRequestTagsProvider.java │ │ │ │ │ ├── Outcome.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── httpcomponents │ │ │ │ │ ├── ApacheHttpClientContext.java │ │ │ │ │ ├── ApacheHttpClientObservationConvention.java │ │ │ │ │ ├── ApacheHttpClientObservationDocumentation.java │ │ │ │ │ ├── DefaultApacheHttpClientObservationConvention.java │ │ │ │ │ ├── DefaultUriMapper.java │ │ │ │ │ ├── HttpContextUtils.java │ │ │ │ │ ├── MicrometerHttpClientInterceptor.java │ │ │ │ │ ├── MicrometerHttpRequestExecutor.java │ │ │ │ │ ├── PoolingHttpClientConnectionManagerMetricsBinder.java │ │ │ │ │ ├── hc5 │ │ │ │ │ │ ├── ApacheHttpClientContext.java │ │ │ │ │ │ ├── ApacheHttpClientObservationConvention.java │ │ │ │ │ │ ├── ApacheHttpClientObservationDocumentation.java │ │ │ │ │ │ ├── DefaultApacheHttpClientObservationConvention.java │ │ │ │ │ │ ├── DefaultUriMapper.java │ │ │ │ │ │ ├── HttpContextUtils.java │ │ │ │ │ │ ├── MicrometerHttpClientInterceptor.java │ │ │ │ │ │ ├── MicrometerHttpRequestExecutor.java │ │ │ │ │ │ ├── ObservationExecChainHandler.java │ │ │ │ │ │ ├── PoolingHttpClientConnectionManagerMetricsBinder.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── hystrix │ │ │ │ │ ├── HystrixMetricsBinder.java │ │ │ │ │ ├── MicrometerMetricsPublisher.java │ │ │ │ │ ├── MicrometerMetricsPublisherCommand.java │ │ │ │ │ ├── MicrometerMetricsPublisherThreadPool.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── jersey │ │ │ │ │ └── server │ │ │ │ │ │ ├── AnnotationFinder.java │ │ │ │ │ │ ├── DefaultJerseyObservationConvention.java │ │ │ │ │ │ ├── DefaultJerseyTagsProvider.java │ │ │ │ │ │ ├── JerseyContext.java │ │ │ │ │ │ ├── JerseyKeyValues.java │ │ │ │ │ │ ├── JerseyObservationConvention.java │ │ │ │ │ │ ├── JerseyObservationDocumentation.java │ │ │ │ │ │ ├── JerseyTags.java │ │ │ │ │ │ ├── JerseyTagsProvider.java │ │ │ │ │ │ ├── MetricsApplicationEventListener.java │ │ │ │ │ │ ├── MetricsRequestEventListener.java │ │ │ │ │ │ ├── ObservationApplicationEventListener.java │ │ │ │ │ │ ├── ObservationRequestEventListener.java │ │ │ │ │ │ ├── TimedFinder.java │ │ │ │ │ │ └── package-info.java │ │ │ │ ├── jetty │ │ │ │ │ ├── DefaultJettyClientObservationConvention.java │ │ │ │ │ ├── InstrumentedQueuedThreadPool.java │ │ │ │ │ ├── JettyClientContext.java │ │ │ │ │ ├── JettyClientKeyValues.java │ │ │ │ │ ├── JettyClientMetrics.java │ │ │ │ │ ├── JettyClientObservationConvention.java │ │ │ │ │ ├── JettyClientObservationDocumentation.java │ │ │ │ │ ├── JettyClientTags.java │ │ │ │ │ ├── JettyClientTagsProvider.java │ │ │ │ │ ├── JettyConnectionMetrics.java │ │ │ │ │ ├── JettyServerThreadPoolMetrics.java │ │ │ │ │ ├── JettySslHandshakeMetrics.java │ │ │ │ │ ├── JettyStatisticsMetrics.java │ │ │ │ │ ├── OnCompletionAsyncListener.java │ │ │ │ │ ├── TimedHandler.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── jpa │ │ │ │ │ ├── HibernateMetrics.java │ │ │ │ │ ├── HibernateQueryMetrics.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── jvm │ │ │ │ │ ├── ClassLoaderMetrics.java │ │ │ │ │ ├── DiskSpaceMetrics.java │ │ │ │ │ ├── ExecutorServiceMetrics.java │ │ │ │ │ ├── JvmCompilationMetrics.java │ │ │ │ │ ├── JvmGcMetrics.java │ │ │ │ │ ├── JvmHeapPressureMetrics.java │ │ │ │ │ ├── JvmInfoMetrics.java │ │ │ │ │ ├── JvmMemory.java │ │ │ │ │ ├── JvmMemoryMetrics.java │ │ │ │ │ ├── JvmThreadDeadlockMetrics.java │ │ │ │ │ ├── JvmThreadMetrics.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── kafka │ │ │ │ │ ├── KafkaClientMetrics.java │ │ │ │ │ ├── KafkaConsumerMetrics.java │ │ │ │ │ ├── KafkaMetrics.java │ │ │ │ │ ├── KafkaStreamsMetrics.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── logging │ │ │ │ │ ├── Log4j2Metrics.java │ │ │ │ │ ├── LogbackMetrics.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── mongodb │ │ │ │ │ ├── DefaultMongoCommandTagsProvider.java │ │ │ │ │ ├── DefaultMongoConnectionPoolTagsProvider.java │ │ │ │ │ ├── MongoCommandTagsProvider.java │ │ │ │ │ ├── MongoConnectionPoolTagsProvider.java │ │ │ │ │ ├── MongoMetricsCommandListener.java │ │ │ │ │ ├── MongoMetricsConnectionPoolListener.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── netty4 │ │ │ │ │ ├── NettyAllocatorMetrics.java │ │ │ │ │ ├── NettyEventExecutorMetrics.java │ │ │ │ │ ├── NettyMeters.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── okhttp3 │ │ │ │ │ ├── DefaultOkHttpObservationConvention.java │ │ │ │ │ ├── OkHttpConnectionPoolMetrics.java │ │ │ │ │ ├── OkHttpContext.java │ │ │ │ │ ├── OkHttpMetricsEventListener.java │ │ │ │ │ ├── OkHttpObservationConvention.java │ │ │ │ │ ├── OkHttpObservationDocumentation.java │ │ │ │ │ ├── OkHttpObservationInterceptor.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ ├── system │ │ │ │ │ ├── DiskSpaceMetrics.java │ │ │ │ │ ├── FileDescriptorMetrics.java │ │ │ │ │ ├── ProcessorMetrics.java │ │ │ │ │ ├── UptimeMetrics.java │ │ │ │ │ └── package-info.java │ │ │ │ └── tomcat │ │ │ │ │ ├── TomcatMetrics.java │ │ │ │ │ └── package-info.java │ │ │ ├── composite │ │ │ │ ├── AbstractCompositeMeter.java │ │ │ │ ├── CompositeCounter.java │ │ │ │ ├── CompositeCustomMeter.java │ │ │ │ ├── CompositeDistributionSummary.java │ │ │ │ ├── CompositeFunctionCounter.java │ │ │ │ ├── CompositeFunctionTimer.java │ │ │ │ ├── CompositeGauge.java │ │ │ │ ├── CompositeLongTaskTimer.java │ │ │ │ ├── CompositeMeter.java │ │ │ │ ├── CompositeMeterRegistry.java │ │ │ │ ├── CompositeTimeGauge.java │ │ │ │ ├── CompositeTimer.java │ │ │ │ └── package-info.java │ │ │ ├── config │ │ │ │ ├── InvalidConfigurationException.java │ │ │ │ ├── MeterFilter.java │ │ │ │ ├── MeterFilterReply.java │ │ │ │ ├── MeterRegistryConfig.java │ │ │ │ ├── MeterRegistryConfigValidator.java │ │ │ │ ├── MissingRequiredConfigurationException.java │ │ │ │ ├── NamingConvention.java │ │ │ │ ├── package-info.java │ │ │ │ └── validate │ │ │ │ │ ├── DurationValidator.java │ │ │ │ │ ├── InvalidReason.java │ │ │ │ │ ├── PropertyValidator.java │ │ │ │ │ ├── Validated.java │ │ │ │ │ ├── ValidationException.java │ │ │ │ │ └── package-info.java │ │ │ ├── cumulative │ │ │ │ ├── CumulativeCounter.java │ │ │ │ ├── CumulativeDistributionSummary.java │ │ │ │ ├── CumulativeFunctionCounter.java │ │ │ │ ├── CumulativeFunctionTimer.java │ │ │ │ ├── CumulativeTimer.java │ │ │ │ └── package-info.java │ │ │ ├── distribution │ │ │ │ ├── AbstractTimeWindowHistogram.java │ │ │ │ ├── CountAtBucket.java │ │ │ │ ├── DistributionStatisticConfig.java │ │ │ │ ├── FixedBoundaryHistogram.java │ │ │ │ ├── FixedBoundaryVictoriaMetricsHistogram.java │ │ │ │ ├── Histogram.java │ │ │ │ ├── HistogramGauges.java │ │ │ │ ├── HistogramSnapshot.java │ │ │ │ ├── HistogramSupport.java │ │ │ │ ├── NoopHistogram.java │ │ │ │ ├── PercentileHistogramBuckets.java │ │ │ │ ├── StepBucketHistogram.java │ │ │ │ ├── TimeWindowFixedBoundaryHistogram.java │ │ │ │ ├── TimeWindowMax.java │ │ │ │ ├── TimeWindowPercentileHistogram.java │ │ │ │ ├── TimeWindowSum.java │ │ │ │ ├── ValueAtPercentile.java │ │ │ │ ├── package-info.java │ │ │ │ └── pause │ │ │ │ │ ├── ClockDriftPauseDetector.java │ │ │ │ │ ├── NoPauseDetector.java │ │ │ │ │ ├── PauseDetector.java │ │ │ │ │ └── package-info.java │ │ │ ├── docs │ │ │ │ ├── MeterDocumentation.java │ │ │ │ └── package-info.java │ │ │ ├── dropwizard │ │ │ │ ├── DropwizardClock.java │ │ │ │ ├── DropwizardConfig.java │ │ │ │ ├── DropwizardCounter.java │ │ │ │ ├── DropwizardDistributionSummary.java │ │ │ │ ├── DropwizardFunctionCounter.java │ │ │ │ ├── DropwizardFunctionTimer.java │ │ │ │ ├── DropwizardGauge.java │ │ │ │ ├── DropwizardMeterRegistry.java │ │ │ │ ├── DropwizardRate.java │ │ │ │ ├── DropwizardTimer.java │ │ │ │ └── package-info.java │ │ │ ├── internal │ │ │ │ ├── CumulativeHistogramLongTaskTimer.java │ │ │ │ ├── DefaultGauge.java │ │ │ │ ├── DefaultLongTaskTimer.java │ │ │ │ ├── DefaultMeter.java │ │ │ │ ├── Mergeable.java │ │ │ │ ├── OnlyOnceLoggingDenyMeterFilter.java │ │ │ │ ├── TimedCallable.java │ │ │ │ ├── TimedExecutor.java │ │ │ │ ├── TimedExecutorService.java │ │ │ │ ├── TimedRunnable.java │ │ │ │ ├── TimedScheduledExecutorService.java │ │ │ │ └── package-info.java │ │ │ ├── kotlin │ │ │ │ ├── KotlinObservationContextElement.java │ │ │ │ └── package-info.java │ │ │ ├── logging │ │ │ │ ├── LoggingMeterRegistry.java │ │ │ │ ├── LoggingRegistryConfig.java │ │ │ │ └── package-info.java │ │ │ ├── noop │ │ │ │ ├── NoopCounter.java │ │ │ │ ├── NoopDistributionSummary.java │ │ │ │ ├── NoopFunctionCounter.java │ │ │ │ ├── NoopFunctionTimer.java │ │ │ │ ├── NoopGauge.java │ │ │ │ ├── NoopLongTaskTimer.java │ │ │ │ ├── NoopMeter.java │ │ │ │ ├── NoopTimeGauge.java │ │ │ │ ├── NoopTimer.java │ │ │ │ └── package-info.java │ │ │ ├── observation │ │ │ │ ├── DefaultMeterObservationHandler.java │ │ │ │ ├── MeterObservationHandler.java │ │ │ │ ├── ObservationOrTimerCompatibleInstrumentation.java │ │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ ├── push │ │ │ │ ├── PushMeterRegistry.java │ │ │ │ ├── PushRegistryConfig.java │ │ │ │ └── package-info.java │ │ │ ├── search │ │ │ │ ├── MeterNotFoundException.java │ │ │ │ ├── RequiredSearch.java │ │ │ │ ├── Search.java │ │ │ │ └── package-info.java │ │ │ ├── simple │ │ │ │ ├── CountingMode.java │ │ │ │ ├── SimpleConfig.java │ │ │ │ ├── SimpleMeterRegistry.java │ │ │ │ └── package-info.java │ │ │ ├── step │ │ │ │ ├── StepCounter.java │ │ │ │ ├── StepDistributionSummary.java │ │ │ │ ├── StepDouble.java │ │ │ │ ├── StepFunctionCounter.java │ │ │ │ ├── StepFunctionTimer.java │ │ │ │ ├── StepLong.java │ │ │ │ ├── StepMeter.java │ │ │ │ ├── StepMeterRegistry.java │ │ │ │ ├── StepRegistryConfig.java │ │ │ │ ├── StepTimer.java │ │ │ │ ├── StepTuple2.java │ │ │ │ ├── StepValue.java │ │ │ │ └── package-info.java │ │ │ └── util │ │ │ │ ├── AbstractPartition.java │ │ │ │ ├── DoubleFormat.java │ │ │ │ ├── HierarchicalNameMapper.java │ │ │ │ ├── IOUtils.java │ │ │ │ ├── MeterEquivalence.java │ │ │ │ ├── MeterPartition.java │ │ │ │ ├── NamedThreadFactory.java │ │ │ │ ├── StringEscapeUtils.java │ │ │ │ ├── StringUtils.java │ │ │ │ ├── TimeUtils.java │ │ │ │ └── package-info.java │ │ │ ├── ipc │ │ │ └── http │ │ │ │ ├── HttpSender.java │ │ │ │ ├── HttpStatusClass.java │ │ │ │ ├── HttpUrlConnectionSender.java │ │ │ │ ├── OkHttpSender.java │ │ │ │ └── package-info.java │ │ │ ├── lang │ │ │ ├── NonNull.java │ │ │ ├── NonNullApi.java │ │ │ ├── NonNullFields.java │ │ │ ├── Nullable.java │ │ │ └── package-info.java │ │ │ └── util │ │ │ └── internal │ │ │ └── logging │ │ │ ├── AbstractInternalLogger.java │ │ │ ├── FormattingTuple.java │ │ │ ├── InternalLogLevel.java │ │ │ ├── InternalLogger.java │ │ │ ├── InternalLoggerFactory.java │ │ │ ├── JdkLogger.java │ │ │ ├── JdkLoggerFactory.java │ │ │ ├── LocationAwareSlf4JLogger.java │ │ │ ├── MessageFormatter.java │ │ │ ├── Slf4JLogger.java │ │ │ ├── Slf4JLoggerFactory.java │ │ │ ├── WarnThenDebugLogger.java │ │ │ └── package-info.java │ ├── kotlin │ │ └── io │ │ │ └── micrometer │ │ │ └── core │ │ │ └── instrument │ │ │ └── kotlin │ │ │ ├── AsContextElement.kt │ │ │ └── ObservationCoroutineContextServerInterceptor.kt │ └── resources │ │ └── META-INF │ │ └── native-image │ │ └── io.micrometer │ │ └── micrometer-core │ │ ├── proxy-config.json │ │ └── reflect-config.json │ └── test │ ├── java │ └── io │ │ └── micrometer │ │ └── core │ │ ├── Issue.java │ │ ├── aop │ │ ├── CountedAspectTest.java │ │ ├── MeterTagSupportTests.java │ │ ├── NullMetricTagAnnotationHandlerTests.java │ │ └── TimedAspectTest.java │ │ ├── instrument │ │ ├── DistributionSummaryTest.java │ │ ├── DynamicTagsTests.java │ │ ├── HighCardinalityTagsDetectorTests.java │ │ ├── MeterFilterTest.java │ │ ├── MeterIdTest.java │ │ ├── MeterRegistryInjectionTest.java │ │ ├── MeterRegistryLoggingTest.java │ │ ├── MeterRegistryTest.java │ │ ├── MeterTest.java │ │ ├── MetricsTest.java │ │ ├── MissingHdrHistogramTest.java │ │ ├── MissingLatencyUtilsTest.java │ │ ├── MultiGaugeTest.java │ │ ├── TagsTest.java │ │ ├── TimeGaugeTest.java │ │ ├── binder │ │ │ ├── cache │ │ │ │ ├── AbstractCacheMetricsTest.java │ │ │ │ ├── CaffeineCacheMetricsTest.java │ │ │ │ ├── CaffeineStatsCounterTest.java │ │ │ │ ├── EhCache2MetricsTest.java │ │ │ │ ├── GuavaCacheMetricsTest.java │ │ │ │ ├── HazelcastCacheMetricsTest.java │ │ │ │ └── JCacheMetricsTest.java │ │ │ ├── commonspool2 │ │ │ │ └── CommonsObjectPool2MetricsTest.java │ │ │ ├── db │ │ │ │ ├── DatabaseTableMetricsTest.java │ │ │ │ ├── MetricsDSLContextTest.java │ │ │ │ ├── PostgreSQLDatabaseMetricsIntegrationTest.java │ │ │ │ └── PostgreSQLDatabaseMetricsTest.java │ │ │ ├── grpc │ │ │ │ ├── GrpcAsyncTest.java │ │ │ │ └── GrpcObservationTest.java │ │ │ ├── http │ │ │ │ └── HttpJakartaServletRequestTagsTest.java │ │ │ ├── httpcomponents │ │ │ │ ├── MicrometerHttpClientInterceptorTest.java │ │ │ │ ├── MicrometerHttpRequestExecutorTest.java │ │ │ │ ├── PoolingHttpClientConnectionManagerMetricsBinderTest.java │ │ │ │ └── hc5 │ │ │ │ │ ├── DefaultApacheHttpClientObservationConventionTest.java │ │ │ │ │ ├── MicrometerHttpClientInterceptorTest.java │ │ │ │ │ ├── MicrometerHttpRequestExecutorTest.java │ │ │ │ │ ├── ObservationExecChainHandlerIntegrationTest.java │ │ │ │ │ ├── ObservationExecChainHandlerTest.java │ │ │ │ │ └── PoolingHttpClientConnectionManagerMetricsBinderTest.java │ │ │ ├── hystrix │ │ │ │ ├── MicrometerMetricsPublisherCommandTest.java │ │ │ │ └── MicrometerMetricsPublisherThreadPoolTest.java │ │ │ ├── jersey │ │ │ │ └── server │ │ │ │ │ ├── DefaultJerseyTagsProviderTest.java │ │ │ │ │ ├── MetricsRequestEventListenerTest.java │ │ │ │ │ ├── MetricsRequestEventListenerTimedTest.java │ │ │ │ │ ├── exception │ │ │ │ │ └── ResourceGoneException.java │ │ │ │ │ ├── mapper │ │ │ │ │ └── ResourceGoneExceptionMapper.java │ │ │ │ │ └── resources │ │ │ │ │ ├── TestResource.java │ │ │ │ │ ├── TimedOnClassResource.java │ │ │ │ │ └── TimedResource.java │ │ │ ├── jetty │ │ │ │ ├── InstrumentedQueuedThreadPoolTest.java │ │ │ │ ├── JettyClientMetricsTest.java │ │ │ │ ├── JettyClientMetricsWithObservationTest.java │ │ │ │ ├── JettyConnectionMetricsTest.java │ │ │ │ ├── JettyServerThreadPoolMetricsTest.java │ │ │ │ ├── JettySslHandshakeMetricsTest.java │ │ │ │ └── TimedHandlerTest.java │ │ │ ├── jpa │ │ │ │ ├── HibernateMetricsNoSecondLevelCacheTest.java │ │ │ │ ├── HibernateMetricsTest.java │ │ │ │ └── HibernateQueryMetricsTest.java │ │ │ ├── jvm │ │ │ │ ├── ClassLoaderMetricsTest.java │ │ │ │ ├── ExecutorServiceMetricsTest.java │ │ │ │ ├── GcTest.java │ │ │ │ ├── JvmCompilationMetricsTest.java │ │ │ │ ├── JvmGcMetricsTest.java │ │ │ │ ├── JvmInfoMetricsTest.java │ │ │ │ ├── JvmMemoryMetricsTest.java │ │ │ │ ├── JvmMemoryTest.java │ │ │ │ ├── JvmThreadDeadlockMetricsTest.java │ │ │ │ └── JvmThreadMetricsTest.java │ │ │ ├── kafka │ │ │ │ ├── KafkaClientMetricsAdminTest.java │ │ │ │ ├── KafkaClientMetricsConsumerTest.java │ │ │ │ ├── KafkaClientMetricsIntegrationTest.java │ │ │ │ ├── KafkaClientMetricsProducerTest.java │ │ │ │ ├── KafkaConsumerMetricsTest.java │ │ │ │ ├── KafkaMetricsTest.java │ │ │ │ └── KafkaStreamsMetricsTest.java │ │ │ ├── logging │ │ │ │ ├── Log4j2MetricsTest.java │ │ │ │ ├── LogbackMetricsGh2868Test.java │ │ │ │ └── LogbackMetricsTest.java │ │ │ ├── mongodb │ │ │ │ ├── AbstractMongoDbTest.java │ │ │ │ ├── DefaultMongoCommandTagsProviderTest.java │ │ │ │ ├── MongoMetricsCommandListenerTest.java │ │ │ │ └── MongoMetricsConnectionPoolListenerTest.java │ │ │ ├── netty4 │ │ │ │ ├── NettyAllocatorMetricsTests.java │ │ │ │ └── NettyEventExecutorMetricsTests.java │ │ │ ├── okhttp3 │ │ │ │ ├── HttpClientKeyValuesConvention.java │ │ │ │ ├── HttpKeyValuesConvention.java │ │ │ │ ├── HttpServerKeyValuesConvention.java │ │ │ │ ├── OkHttpConnectionPoolMetricsTest.java │ │ │ │ ├── OkHttpMetricsEventListenerTest.java │ │ │ │ ├── OkHttpObservationInterceptorTest.java │ │ │ │ └── RetrofitOkHttpObservationInterceptorTest.java │ │ │ ├── system │ │ │ │ ├── DiskSpaceMetricsTest.java │ │ │ │ ├── FileDescriptorMetricsTest.java │ │ │ │ ├── ProcessorMetricsTest.java │ │ │ │ └── UptimeMetricsTest.java │ │ │ └── tomcat │ │ │ │ └── TomcatMetricsTest.java │ │ ├── composite │ │ │ ├── CompositeCounterTest.java │ │ │ ├── CompositeLongTaskTimerTest.java │ │ │ └── CompositeMeterRegistryTest.java │ │ ├── config │ │ │ ├── DurationValidatorTest.java │ │ │ ├── NamingConventionTest.java │ │ │ ├── ValidatedTest.java │ │ │ └── validate │ │ │ │ └── PropertyValidatorTest.java │ │ ├── cumulative │ │ │ └── CumulativeFunctionTimerTest.java │ │ ├── distribution │ │ │ ├── DistributionStatisticConfigTest.java │ │ │ ├── FixedBoundaryHistogramTest.java │ │ │ ├── FixedBoundaryVictoriaMetricsHistogramTest.java │ │ │ ├── HistogramGaugesTest.java │ │ │ ├── StepBucketHistogramTest.java │ │ │ ├── TimeWindowFixedBoundaryHistogramTest.java │ │ │ ├── TimeWindowMaxTest.java │ │ │ ├── TimeWindowPercentileHistogramTest.java │ │ │ └── TimeWindowRotationTest.java │ │ ├── dropwizard │ │ │ ├── DropwizardClockTest.java │ │ │ ├── DropwizardCounterTest.java │ │ │ ├── DropwizardFunctionTimerTest.java │ │ │ ├── DropwizardGaugeTest.java │ │ │ └── DropwizardMeterRegistryTest.java │ │ ├── internal │ │ │ ├── DefaultLongTaskTimerTest.java │ │ │ └── DefaultMeterTest.java │ │ ├── logging │ │ │ └── LoggingMeterRegistryTest.java │ │ ├── noop │ │ │ ├── NoopCounterTest.java │ │ │ ├── NoopDistributionSummaryTest.java │ │ │ ├── NoopFunctionCounterTest.java │ │ │ ├── NoopFunctionTimerTest.java │ │ │ ├── NoopGaugeTest.java │ │ │ ├── NoopLongTaskTimerTest.java │ │ │ ├── NoopMeterTest.java │ │ │ ├── NoopTimeGaugeTest.java │ │ │ └── NoopTimerTest.java │ │ ├── observation │ │ │ ├── DefaultMeterObservationHandlerTest.java │ │ │ └── ObservationOrTimerCompatibleInstrumentationTest.java │ │ ├── push │ │ │ ├── PushMeterRegistryTest.java │ │ │ └── PushRegistryConfigTest.java │ │ ├── search │ │ │ ├── RequiredSearchTest.java │ │ │ └── SearchTest.java │ │ ├── simple │ │ │ └── SimpleMeterRegistryTest.java │ │ ├── step │ │ │ ├── StepCounterTest.java │ │ │ ├── StepDistributionSummaryTest.java │ │ │ ├── StepFunctionCounterTest.java │ │ │ ├── StepFunctionTimerTest.java │ │ │ ├── StepMeterRegistryTest.java │ │ │ ├── StepTimerTest.java │ │ │ └── StepValueTest.java │ │ └── util │ │ │ ├── AbstractPartitionTest.java │ │ │ ├── DoubleFormatTest.java │ │ │ ├── HierarchicalNameMapperTest.java │ │ │ ├── IOUtilsTest.java │ │ │ ├── NamedThreadFactoryTest.java │ │ │ ├── StringEscapeUtilsTest.java │ │ │ ├── StringUtilsTest.java │ │ │ └── TimeUtilsTest.java │ │ ├── ipc │ │ └── http │ │ │ ├── HttpStatusClassTest.java │ │ │ ├── HttpUrlConnectionSenderTests.java │ │ │ ├── OkHttpSenderTests.java │ │ │ └── RequestTest.java │ │ └── testsupport │ │ ├── classpath │ │ ├── ClassPathExclusions.java │ │ ├── ClassPathOverrides.java │ │ ├── ForkedClassPath.java │ │ ├── ModifiedClassPathClassLoader.java │ │ ├── ModifiedClassPathExtension.java │ │ └── package-info.java │ │ └── system │ │ ├── CapturedOutput.java │ │ ├── OutputCapture.java │ │ ├── OutputCaptureExtension.java │ │ └── package-info.java │ ├── kotlin │ └── io │ │ └── micrometer │ │ └── core │ │ └── instrument │ │ └── kotlin │ │ ├── AsContextElementKtTests.kt │ │ └── binder │ │ └── grpc │ │ └── GrpcCoroutinesTest.kt │ └── resources │ ├── binder │ └── logging │ │ ├── log4j2-async-logger.xml │ │ └── log4j2-root-logger-additivity-false.xml │ └── logback.xml ├── micrometer-jakarta9 ├── build.gradle └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ └── jakarta9 │ │ └── instrument │ │ └── jms │ │ ├── DefaultJmsProcessObservationConvention.java │ │ ├── DefaultJmsPublishObservationConvention.java │ │ ├── JmsInstrumentation.java │ │ ├── JmsKeyValues.java │ │ ├── JmsObservationDocumentation.java │ │ ├── JmsProcessObservationContext.java │ │ ├── JmsProcessObservationConvention.java │ │ ├── JmsPublishObservationContext.java │ │ ├── JmsPublishObservationConvention.java │ │ ├── MessageConsumerInvocationHandler.java │ │ ├── MessageProducerInvocationHandler.java │ │ ├── SessionInvocationHandler.java │ │ └── package-info.java │ └── test │ └── java │ └── io │ └── micrometer │ └── jakarta9 │ ├── NoJavaxArchitectureTests.java │ └── instrument │ └── jms │ ├── DefaultJmsProcessObservationConventionTests.java │ └── DefaultJmsPublishObservationConventionTests.java ├── micrometer-java11 ├── build.gradle └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ └── java11 │ │ └── instrument │ │ └── binder │ │ └── jdk │ │ ├── DefaultHttpClientObservationConvention.java │ │ ├── HttpClientContext.java │ │ ├── HttpClientObservationConvention.java │ │ ├── HttpClientObservationDocumentation.java │ │ ├── MicrometerHttpClient.java │ │ └── package-info.java │ └── test │ └── java │ └── io │ └── micrometer │ └── java11 │ └── instrument │ └── binder │ └── jdk │ ├── JdkHttpClientTimingInstrumentationVerificationTests.java │ └── MicrometerHttpClientTests.java ├── micrometer-java21 ├── build.gradle └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ └── java21 │ │ └── instrument │ │ └── binder │ │ └── jdk │ │ ├── VirtualThreadMetrics.java │ │ └── package-info.java │ └── test │ └── java │ └── io │ └── micrometer │ ├── core │ └── instrument │ │ └── binder │ │ └── jvm │ │ └── ExecutorServiceMetricsReflectiveTests.java │ └── java21 │ └── instrument │ └── binder │ └── jdk │ ├── VirtualThreadMetricsJdk24Tests.java │ ├── VirtualThreadMetricsReflectiveTests.java │ └── VirtualThreadMetricsTests.java ├── micrometer-jetty11 ├── build.gradle └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ └── jetty11 │ │ ├── TimedHandler.java │ │ └── package-info.java │ └── test │ └── java │ └── io │ └── micrometer │ └── jetty11 │ └── TimedHandlerTest.java ├── micrometer-jetty12 ├── build.gradle └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ └── jetty12 │ │ ├── client │ │ ├── DefaultJettyClientObservationConvention.java │ │ ├── JettyClientContext.java │ │ ├── JettyClientKeyValues.java │ │ ├── JettyClientMetrics.java │ │ ├── JettyClientObservationConvention.java │ │ ├── JettyClientObservationDocumentation.java │ │ ├── JettyClientTags.java │ │ ├── JettyClientTagsProvider.java │ │ └── package-info.java │ │ └── server │ │ ├── DefaultJettyCoreRequestTagsProvider.java │ │ ├── JettyCoreRequestTagsProvider.java │ │ ├── TimedHandler.java │ │ └── package-info.java │ └── test │ ├── java │ └── io │ │ └── micrometer │ │ └── jetty12 │ │ ├── JettyConnectionMetricsTest.java │ │ ├── client │ │ ├── Jetty12ClientTimingInstrumentationVerificationTests.java │ │ ├── JettyClientMetricsTest.java │ │ └── JettyClientMetricsWithObservationTest.java │ │ └── server │ │ └── TimedHandlerTest.java │ └── resources │ └── logback.xml ├── micrometer-observation-test ├── build.gradle └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ └── observation │ │ └── tck │ │ ├── AnyContextObservationHandlerCompatibilityKit.java │ │ ├── ConcreteContextObservationHandlerCompatibilityKit.java │ │ ├── InvalidObservationException.java │ │ ├── NullContextObservationHandlerCompatibilityKit.java │ │ ├── ObservationContextAssert.java │ │ ├── ObservationRegistryAssert.java │ │ ├── ObservationRegistryCompatibilityKit.java │ │ ├── ObservationValidator.java │ │ ├── TestObservationRegistry.java │ │ ├── TestObservationRegistryAssert.java │ │ └── package-info.java │ └── test │ └── java │ └── io │ └── micrometer │ └── observation │ └── tck │ ├── AnyContextObservationHandlerCompatibilityKitTests.java │ ├── ConcreteContextObservationHandlerCompatibilityKitTests.java │ ├── NullContextObservationHandlerCompatibilityKitTests.java │ ├── ObservationContextAssertTests.java │ ├── ObservationRegistryAssertTests.java │ ├── ObservationRegistryCompatibilityKitTests.java │ ├── ObservationValidatorTests.java │ └── TestObservationRegistryAssertTests.java ├── micrometer-observation ├── build.gradle └── src │ ├── main │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── observation │ │ │ ├── GlobalObservationConvention.java │ │ │ ├── KeyValuesConvention.java │ │ │ ├── NoopObservation.java │ │ │ ├── NoopObservationConfig.java │ │ │ ├── NoopObservationConvention.java │ │ │ ├── NoopObservationRegistry.java │ │ │ ├── NullObservation.java │ │ │ ├── Observation.java │ │ │ ├── ObservationConvention.java │ │ │ ├── ObservationFilter.java │ │ │ ├── ObservationHandler.java │ │ │ ├── ObservationPredicate.java │ │ │ ├── ObservationRegistry.java │ │ │ ├── ObservationTextPublisher.java │ │ │ ├── ObservationView.java │ │ │ ├── Observations.java │ │ │ ├── SimpleEvent.java │ │ │ ├── SimpleObservation.java │ │ │ ├── SimpleObservationRegistry.java │ │ │ ├── annotation │ │ │ ├── Observed.java │ │ │ └── package-info.java │ │ │ ├── aop │ │ │ ├── ObservedAspect.java │ │ │ ├── ObservedAspectObservationDocumentation.java │ │ │ └── package-info.java │ │ │ ├── contextpropagation │ │ │ ├── ObservationThreadLocalAccessor.java │ │ │ └── package-info.java │ │ │ ├── docs │ │ │ ├── ObservationDocumentation.java │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ └── transport │ │ │ ├── Kind.java │ │ │ ├── Propagator.java │ │ │ ├── ReceiverContext.java │ │ │ ├── RequestReplyReceiverContext.java │ │ │ ├── RequestReplySenderContext.java │ │ │ ├── ResponseContext.java │ │ │ ├── SenderContext.java │ │ │ └── package-info.java │ └── resources │ │ └── META-INF │ │ └── services │ │ └── io.micrometer.context.ThreadLocalAccessor │ └── test │ └── java │ └── io │ └── micrometer │ └── observation │ ├── AllMatchingCompositeObservationHandlerTests.java │ ├── ArchitectureTests.java │ ├── CurrentObservationTest.java │ ├── FirstMatchingCompositeObservationHandlerTests.java │ ├── NoopObservationRegistryTests.java │ ├── ObservationContextTest.java │ ├── ObservationConventionTest.java │ ├── ObservationRegistryTest.java │ ├── ObservationTests.java │ ├── ObservationTextPublisherTests.java │ ├── aop │ └── ObservedAspectTests.java │ ├── contextpropagation │ └── ObservationThreadLocalAccessorTests.java │ └── docs │ └── ObservationDocumentationTests.java ├── micrometer-osgi-test ├── build.gradle ├── src │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── osgi │ │ └── test │ │ └── OsgiTest.java └── test.bndrun ├── micrometer-test-aspectj-ctw ├── build.gradle └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ └── test │ │ └── ctw │ │ ├── MeasuredClass.java │ │ └── package-info.java │ └── test │ ├── java │ └── io │ │ └── micrometer │ │ └── test │ │ └── ctw │ │ └── MeasuredClassTest.java │ └── resources │ └── logback.xml ├── micrometer-test-aspectj-ltw ├── build.gradle └── src │ ├── main │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── test │ │ │ └── ltw │ │ │ ├── MeasuredClass.java │ │ │ └── package-info.java │ └── resources │ │ └── META-INF │ │ └── aop.xml │ └── test │ ├── java │ └── io │ │ └── micrometer │ │ └── test │ │ └── ltw │ │ └── MeasuredClassTest.java │ └── resources │ └── logback.xml ├── micrometer-test ├── build.gradle └── src │ ├── main │ └── java │ │ └── io │ │ └── micrometer │ │ ├── common │ │ └── util │ │ │ └── internal │ │ │ └── logging │ │ │ ├── LogEvent.java │ │ │ ├── MockLogger.java │ │ │ ├── MockLoggerFactory.java │ │ │ └── package-info.java │ │ └── core │ │ ├── Issue.java │ │ ├── instrument │ │ ├── HttpClientTimingInstrumentationVerificationTests.java │ │ ├── HttpServerTimingInstrumentationVerificationTests.java │ │ ├── InstrumentationTimingVerificationTests.java │ │ ├── InstrumentationVerificationTests.java │ │ ├── binder │ │ │ └── cache │ │ │ │ ├── AbstractCacheMetricsTest.java │ │ │ │ ├── CacheMeterBinderCompatibilityKit.java │ │ │ │ └── package-info.java │ │ ├── package-info.java │ │ └── step │ │ │ ├── PollingAwareMockStepClock.java │ │ │ └── package-info.java │ │ ├── ipc │ │ └── http │ │ │ ├── HttpSenderCompatibilityKit.java │ │ │ └── package-info.java │ │ ├── package-info.java │ │ ├── tck │ │ ├── DefaultLongTaskTimerTest.java │ │ ├── MeterRegistryAssert.java │ │ ├── MeterRegistryCompatibilityKit.java │ │ └── package-info.java │ │ └── util │ │ └── internal │ │ └── logging │ │ ├── LogEvent.java │ │ ├── MockLogger.java │ │ ├── MockLoggerFactory.java │ │ └── package-info.java │ └── test │ ├── java │ └── io │ │ └── micrometer │ │ ├── common │ │ └── util │ │ │ └── internal │ │ │ └── logging │ │ │ ├── LogEventTest.java │ │ │ ├── MockLoggerFactoryTest.java │ │ │ └── MockLoggerTest.java │ │ └── core │ │ ├── instrument │ │ ├── ApacheAsyncHttpClient5TimingInstrumentationVerificationTests.java │ │ ├── ApacheAsyncHttpClientTimingInstrumentationVerificationTests.java │ │ ├── ApacheHttpClient5TimingInstrumentationVerificationTests.java │ │ ├── ApacheHttpClientTimingInstrumentationVerificationTests.java │ │ ├── JerseyServerTimingInstrumentationVerificationTests.java │ │ ├── JettyClientTimingInstrumentationVerificationTests.java │ │ ├── JettyServerTimingInstrumentationVerificationTests.java │ │ ├── OkHttpClientTimingInstrumentationVerificationTests.java │ │ ├── binder │ │ │ ├── cache │ │ │ │ ├── CaffeineCacheMetricsCompatibilityTest.java │ │ │ │ ├── EhCache2MetricsCompatibilityTest.java │ │ │ │ ├── GuavaCacheMetricsCompatibilityKit.java │ │ │ │ ├── HazelcastCacheMetricsCompatibilityTest.java │ │ │ │ └── JCacheMetricsCompatibilityTest.java │ │ │ └── jms │ │ │ │ └── JmsInstrumentationTests.java │ │ ├── composite │ │ │ └── CompositeMeterRegistryCompatibilityTest.java │ │ └── simple │ │ │ └── SimpleMeterRegistryCompatibilityTest.java │ │ ├── ipc │ │ └── http │ │ │ ├── HttpUrlConnectionSenderTest.java │ │ │ └── OkHttpSenderTest.java │ │ ├── tck │ │ └── MeterRegistryAssertTests.java │ │ └── util │ │ └── internal │ │ └── logging │ │ ├── LogEventTest.java │ │ ├── MockLoggerFactoryTest.java │ │ └── MockLoggerTest.java │ └── resources │ └── logback.xml ├── samples ├── micrometer-samples-core │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── core │ │ │ └── samples │ │ │ ├── CacheSample.java │ │ │ ├── CounterSample.java │ │ │ ├── CrazyCharactersSample.java │ │ │ ├── DiskMetricsSample.java │ │ │ ├── ExecutorServiceSample.java │ │ │ ├── FunctionCounterSample.java │ │ │ ├── FunctionTimerSample.java │ │ │ ├── GaugeSample.java │ │ │ ├── GrpcMetricsSample.java │ │ │ ├── GrpcObservationSample.java │ │ │ ├── JvmMemorySample.java │ │ │ ├── KafkaMetricsSample.java │ │ │ ├── LatencySample.java │ │ │ ├── LongTaskTimerSample.java │ │ │ ├── MeterProviderSample.java │ │ │ ├── MultiGaugeSample.java │ │ │ ├── NullGaugeSample.java │ │ │ ├── ObservationHandlerSample.java │ │ │ ├── PrometheusExemplarsSample.java │ │ │ ├── QuantileDecaySample.java │ │ │ ├── SimulatedEndpointInstrumentation.java │ │ │ ├── TimerMaximumThroughputSample.java │ │ │ ├── TimerMemory.java │ │ │ ├── TimerSample.java │ │ │ ├── UptimeMetricsSample.java │ │ │ ├── package-info.java │ │ │ └── utils │ │ │ ├── SampleConfig.java │ │ │ ├── SampleRegistries.java │ │ │ └── package-info.java │ │ └── resources │ │ └── logback.xml ├── micrometer-samples-hazelcast │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ └── io │ │ │ └── micrometer │ │ │ └── samples │ │ │ └── hazelcast4 │ │ │ └── HazelcastCacheSample.java │ │ └── resources │ │ └── logback.xml ├── micrometer-samples-javalin │ ├── build.gradle │ └── src │ │ └── main │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── javalin │ │ └── samples │ │ └── PrometheusSample.java ├── micrometer-samples-jersey3 │ ├── build.gradle │ └── src │ │ ├── main │ │ └── java │ │ │ └── io │ │ │ └── micrometer │ │ │ └── samples │ │ │ └── jersey3 │ │ │ ├── HelloWorldResource.java │ │ │ └── Jersey3Main.java │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── samples │ │ └── jersey3 │ │ └── Jersey3Test.java ├── micrometer-samples-jooq │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── io │ │ └── micrometer │ │ └── samples │ │ └── jooq │ │ └── MetricsDSLContextTest.java ├── micrometer-samples-kotlin │ ├── build.gradle │ └── src │ │ └── test │ │ └── kotlin │ │ └── io │ │ └── micrometer │ │ └── samples │ │ └── kotlin │ │ ├── KotlinCoroutinesTests.kt │ │ └── OkHttpClientTimingInstrumentationVerificationTests.kt └── micrometer-samples-spring-framework6 │ ├── build.gradle │ └── src │ └── test │ └── java │ └── io │ └── micrometer │ ├── core │ └── aop │ │ └── MeterTagSupportTests.java │ └── samples │ └── spring6 │ ├── aop │ ├── CountedAspectTest.java │ ├── HighCardinality.java │ ├── HighCardinalityAnnotationHandler.java │ ├── ObservedAspectTests.java │ ├── SpelValueExpressionResolver.java │ └── TimedAspectTest.java │ └── inject │ └── MeterRegistryInjectionTest.java ├── scripts ├── .gitignore ├── README.md ├── atlas.sh ├── cassandra.sh ├── cpu.sh ├── elastic.sh ├── ganglia.sh ├── go-graphite.sh ├── grafana-datasource.yml ├── grafana.sh ├── graphite.sh ├── influx.sh ├── kairosdb.sh ├── newrelic │ ├── .gitignore │ └── newrelic.jar ├── prometheus.sh ├── prometheus.yml ├── spring-dash │ ├── grafana-dashboard.yml │ ├── grafana-datasource.yml │ ├── grafana.sh │ ├── jvmgc-dashboard.json │ ├── latency-dashboard.json │ ├── processor-dashboard.json │ ├── prometheus.sh │ └── prometheus.yml ├── statsd-datadog.sh └── statsd-telegraf.sh └── settings.gradle /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | insert_final_newline = true 5 | 6 | [*.java] 7 | indent_style = space 8 | indent_size = 4 9 | continuation_indent_size = 4 10 | ij_java_imports_layout = *,|,javax.**,java.**,|,$* 11 | ij_java_class_count_to_use_import_on_demand = 5 12 | ij_java_names_count_to_use_import_on_demand = 3 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/enhancement-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Enhancement request 3 | about: Request an enhancement for Micrometer 4 | title: '' 5 | labels: 'waiting-for-triage' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Please describe the feature request.** 11 | A clear and concise description of what you would like to be able to do with Micrometer and cannot currently. 12 | 13 | **Rationale** 14 | Please help us understand the rationale (why) behind the enhancement request. 15 | 16 | **Additional context** 17 | Add any other context about the feature request here, e.g. related issues, prior art. 18 | -------------------------------------------------------------------------------- /.github/dco.yml: -------------------------------------------------------------------------------- 1 | require: 2 | members: false 3 | -------------------------------------------------------------------------------- /.github/workflows/dependabot-automerge.yml: -------------------------------------------------------------------------------- 1 | name: Merge Dependabot PR 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - main 7 | - '*.x' 8 | 9 | run-name: Merge Dependabot PR ${{ github.ref_name }} 10 | 11 | jobs: 12 | merge-dependabot-pr: 13 | permissions: write-all 14 | 15 | # Until v6 is released 16 | uses: spring-io/spring-github-workflows/.github/workflows/spring-merge-dependabot-pr.yml@fb521347cd478c87be0b898a2f8e810e84fc98a5 17 | with: 18 | autoMerge: true 19 | mergeArguments: --auto --squash 20 | -------------------------------------------------------------------------------- /.github/workflows/gradle-wrapper-validation.yml: -------------------------------------------------------------------------------- 1 | name: "Validate Gradle Wrapper" 2 | on: [push, pull_request] 3 | 4 | permissions: 5 | contents: read 6 | 7 | jobs: 8 | validation: 9 | name: "Validation" 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v4 13 | - uses: gradle/actions/wrapper-validation@v4 14 | -------------------------------------------------------------------------------- /.github/workflows/post-release-workflow.yml: -------------------------------------------------------------------------------- 1 | name: Post Release Tasks 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | previous_ref_name: 7 | description: "Previous release version (e.g., v1.14.8)" 8 | required: false 9 | 10 | jobs: 11 | post_release: 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - name: Checkout code 16 | uses: actions/checkout@v4 17 | 18 | - name: Run Post Release Tasks 19 | uses: micrometer-metrics/micrometer-github-workflows@main 20 | with: 21 | gh_token: ${{ secrets.GH_ACTIONS_REPO_TOKEN }} 22 | previous_ref_name: ${{ github.event.inputs.previous_ref_name }} 23 | spring_release_gchat_webhook_url: ${{ secrets.SPRING_RELEASE_GCHAT_WEBHOOK_URL }} 24 | bluesky_handle: ${{ secrets.BLUESKY_HANDLE }} 25 | bluesky_password: ${{ secrets.BLUESKY_PASSWORD }} 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | .gradle/ 3 | out/ 4 | 5 | code/ 6 | 7 | *.iml 8 | *.ipr 9 | *.iws 10 | .idea/* 11 | !.idea/icon.svg 12 | 13 | .classpath 14 | .project 15 | .settings/ 16 | .sts4-cache/ 17 | .kotlin/ 18 | bin/ 19 | .factorypath 20 | .vscode 21 | .DS_Store 22 | .java-version 23 | 24 | # jcstress 25 | generated/ 26 | results/ 27 | jcstress-results-*.bin.gz 28 | -------------------------------------------------------------------------------- /.springjavaformatconfig: -------------------------------------------------------------------------------- 1 | java-baseline=8 2 | indentation-style=spaces 3 | -------------------------------------------------------------------------------- /SUPPORT.adoc: -------------------------------------------------------------------------------- 1 | = Getting support for Micrometer 2 | 3 | == GitHub issues 4 | We choose not to use GitHub issues for general usage questions and support, preferring to 5 | use issues solely for the tracking of bugs and enhancements. If you have a general 6 | usage question please do not open a GitHub issue, but use one of the other channels 7 | described below. 8 | 9 | If you are reporting a bug, please help to speed up problem diagnosis by providing as 10 | much information as possible. Ideally, that would include a small sample project that 11 | reproduces the problem. 12 | 13 | == Stack Overflow 14 | The Micrometer community monitors the 15 | https://stackoverflow.com/tags/micrometer[`micrometer`] tag on Stack Overflow. Before 16 | asking a question, please familiarize yourself with Stack Overflow's 17 | https://stackoverflow.com/help/how-to-ask[advice on how to ask a good question]. 18 | 19 | == Slack 20 | If you want to discuss something or have a question that isn't suited to Stack Overflow, 21 | the Micrometer community chat in the https://slack.micrometer.io[micrometer-metrics Slack]. 22 | -------------------------------------------------------------------------------- /benchmarks/benchmarks-core/src/jmh/.gitignore: -------------------------------------------------------------------------------- 1 | generated 2 | -------------------------------------------------------------------------------- /benchmarks/benchmarks-core/src/jmh/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /concurrency-tests/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | alias(libs.plugins.jcstress) 3 | } 4 | 5 | dependencies { 6 | // Comment out the local project references and reference an old version to compare jcstress results across versions 7 | // Make sure to use a consistent version for all micrometer dependencies 8 | implementation project(":micrometer-core") 9 | // implementation("io.micrometer:micrometer-core:1.14.1") 10 | implementation project(":micrometer-registry-prometheus") 11 | // implementation("io.micrometer:micrometer-registry-prometheus:1.14.1") 12 | implementation project(":micrometer-registry-otlp") 13 | 14 | runtimeOnly(libs.logbackLatest) 15 | } 16 | 17 | jcstress { 18 | jcstressDependency libs.jcstressCore.get().toString() 19 | 20 | // This affects how long and thorough testing will be 21 | // In order of increasing stress: sanity, quick, default, tough, stress 22 | mode = 'quick' 23 | verbose = true 24 | } 25 | -------------------------------------------------------------------------------- /docs/antora.yml: -------------------------------------------------------------------------------- 1 | name: micrometer 2 | version: true 3 | title: Micrometer 4 | nav: 5 | - modules/ROOT/nav.adoc 6 | ext: 7 | collector: 8 | run: 9 | command: gradlew -q -PbuildSrc.skipTests=true -Pantora "-Dorg.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError" :docs:generateAntoraResources 10 | local: true 11 | scan: 12 | dir: ./build/generated-antora-resources 13 | 14 | asciidoc: 15 | attributes: 16 | attribute-missing: 'warn' 17 | chomp: 'all' 18 | include-java: 'example$docs-src/test/java/io/micrometer/docs' 19 | include-resources: 'example$docs-src/test/resources' 20 | include-core-test-java: 'example$core-test' 21 | include-micrometer-test-java: 'example$micrometer-test' 22 | include-micrometer-java11-test: 'example$micrometer-java11-test' 23 | -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/concepts/prometheus-counter-norate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/concepts/prometheus-counter-norate.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/concepts/prometheus-counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/concepts/prometheus-counter.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/concepts/rate-normalizing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/concepts/rate-normalizing.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/appoptics-timer-average.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/appoptics-timer-average.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/appoptics-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/appoptics-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/atlas-counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/atlas-counter.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/atlas-long-task-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/atlas-long-task-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/atlas-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/atlas-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/datadog-counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/datadog-counter.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/datadog-long-task-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/datadog-long-task-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/datadog-select-tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/datadog-select-tags.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/datadog-timer-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/datadog-timer-metrics.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/datadog-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/datadog-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/ganglia-counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/ganglia-counter.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/graphite-counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/graphite-counter.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/humio-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/humio-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/influx-counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/influx-counter.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/influx-long-task-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/influx-long-task-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/influx-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/influx-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/jmx-counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/jmx-counter.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/new-relic-keys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/new-relic-keys.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/new-relic-timer-latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/new-relic-timer-latency.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/new-relic-timer-percentiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/new-relic-timer-percentiles.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/new-relic-timer-sla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/new-relic-timer-sla.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/new-relic-timer-throughput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/new-relic-timer-throughput.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/prometheus-counter-norate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/prometheus-counter-norate.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/prometheus-counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/prometheus-counter.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/prometheus-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/prometheus-dashboard.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/prometheus-long-task-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/prometheus-long-task-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/prometheus-timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/prometheus-timer.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/quantile-algorithms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/quantile-algorithms.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/signalfx-timer-latency-query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/signalfx-timer-latency-query.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/signalfx-timer-latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/signalfx-timer-latency.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/signalfx-timer-percentiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/signalfx-timer-percentiles.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/signalfx-timer-sla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/signalfx-timer-sla.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/signalfx-timer-throughput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/signalfx-timer-throughput.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/wavefront-counter-rate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/wavefront-counter-rate.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/wavefront-counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/wavefront-counter.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/wavefront-timer-latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/wavefront-timer-latency.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/wavefront-timer-sla.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/wavefront-timer-sla.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/implementations/wavefront-timer-throughput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/implementations/wavefront-timer-throughput.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/logo.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/reference/cache/grafana-guava-miss-ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/reference/cache/grafana-guava-miss-ratio.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/reference/cache/prometheus-guava-cache-ratio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/reference/cache/prometheus-guava-cache-ratio.png -------------------------------------------------------------------------------- /docs/modules/ROOT/assets/images/reference/cache/prometheus-guava-cache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/docs/modules/ROOT/assets/images/reference/cache/prometheus-guava-cache.png -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/core-test: -------------------------------------------------------------------------------- 1 | ../../../../micrometer-core/src/test/java -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/docs-src: -------------------------------------------------------------------------------- 1 | ../../../src -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/micrometer-java11-test: -------------------------------------------------------------------------------- 1 | ../../../../micrometer-java11/src/test/java -------------------------------------------------------------------------------- /docs/modules/ROOT/examples/micrometer-test: -------------------------------------------------------------------------------- 1 | ../../../../micrometer-test/src/test/java -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/guides.adoc: -------------------------------------------------------------------------------- 1 | [[guides]] 2 | = Guides 3 | 4 | In this section you can find guides on how to perform certain uncommon actions with Micrometer. 5 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/implementations.adoc: -------------------------------------------------------------------------------- 1 | [[implementations-setup]] 2 | = Setup 3 | 4 | Instructions for how to configure Micrometer for use with different monitoring systems. As a facade over multiple monitoring systems, the point of Micrometer is to allow you to instrument your code in the same way and be able to visualize the results in your monitoring system of choice. 5 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/implementations/_install.adoc: -------------------------------------------------------------------------------- 1 | [id=installing-micrometer-registry-{system}] 2 | == Installing micrometer-registry-{system} 3 | 4 | It is recommended to use the BOM provided by Micrometer (or your framework if any), you can see how to configure it xref:../installing.adoc[here]. The examples below assume you are using a BOM. 5 | 6 | === Gradle 7 | 8 | After the BOM is xref:../installing.adoc[configured], add the following dependency: 9 | 10 | [source,groovy,subs=+attributes] 11 | ---- 12 | implementation 'io.micrometer:micrometer-registry-{system}' 13 | ---- 14 | 15 | NOTE: The version is not needed for this dependency since it is defined by the BOM. 16 | 17 | === Maven 18 | 19 | After the BOM is xref:../installing.adoc[configured], add the following dependency: 20 | 21 | [source,xml,subs=+attributes] 22 | ---- 23 | 24 | io.micrometer 25 | micrometer-registry-{system} 26 | 27 | ---- 28 | 29 | NOTE: The version is not needed for this dependency since it is defined by the BOM. 30 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/implementations/hierarchical-name-mapping.adoc: -------------------------------------------------------------------------------- 1 | == Hierarchical name mapping 2 | 3 | Micrometer provides a `HierarchicalNameMapper` interface that governs how a dimensional meter ID is mapped to flat hierarchical names. 4 | 5 | The default (`HierarchicalNameMapper.DEFAULT`) sorts tags alphabetically by key and appends tag key/value pairs to the base meter name with '.' -- for example, `http_server_requests.method.GET.response.200`. The name and tag keys have the registry's naming convention applied to them first. 6 | 7 | If there is something special about your naming scheme that you need to honor, you can provide your own `HierarchicalNameMapper` implementation. The most common cause of a custom mapper comes from a need to prefix something to the front of every metric (generally something like `app..http_server_requests.method.GET.response.200`). 8 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/implementations/jmx.adoc: -------------------------------------------------------------------------------- 1 | = Micrometer JMX 2 | :sectnums: 3 | :system: jmx 4 | 5 | Micrometer provides a hierarchical mapping to JMX, primarily as a cheap and portable way to view metrics locally. Where JMX exporting is found in production, the same metrics are generally exported to another, more purpose-fit monitoring system. 6 | 7 | include::_install.adoc[] 8 | 9 | Micrometer also sometimes scrapes data from JMX beans for use in reporting metrics. This registry implementation is not needed for these uses. Rather, this module is strictly used to _export_ data to JMX. 10 | 11 | include::hierarchical-name-mapping.adoc[] 12 | 13 | == Counters 14 | 15 | JMX counters measure mean throughput and one-, five-, and fifteen-minute exponentially-weighted moving average throughputs. 16 | 17 | .The JMX rendered values of the random walk counter. 18 | image::implementations/jmx-counter.png[JMX-rendered counter] 19 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/observation.adoc: -------------------------------------------------------------------------------- 1 | [[micrometer-observation-overview]] 2 | = Micrometer Observation 3 | 4 | Micrometer Observation is part of the https://github.com/micrometer-metrics/micrometer[Micrometer] project and contains the Observation API. The main idea behind it is that you 5 | 6 | **** 7 | _"Instrument code once, and get multiple benefits out of it."_ 8 | **** 9 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/observation/installing.adoc: -------------------------------------------------------------------------------- 1 | [[micrometer-observation-install]] 2 | = Installing 3 | 4 | It is recommended to use the BOM provided by Micrometer (or your framework if any), you can see how to configure it xref:../installing.adoc[here]. The examples below assume you are using a BOM. 5 | 6 | == Gradle 7 | 8 | After the BOM is xref:../installing.adoc[configured], add the following dependency: 9 | 10 | [source,groovy] 11 | ---- 12 | implementation 'io.micrometer:micrometer-observation' 13 | ---- 14 | 15 | NOTE: The version is not needed for this dependency since it is defined by the BOM. 16 | 17 | == Maven 18 | 19 | After the BOM is xref:../installing.adoc[configured], add the following dependency: 20 | 21 | [source,xml] 22 | ---- 23 | 24 | io.micrometer 25 | micrometer-observation 26 | 27 | ---- 28 | 29 | NOTE: The version is not needed for this dependency since it is defined by the BOM. 30 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/overview.adoc: -------------------------------------------------------------------------------- 1 | [[overview]] 2 | = Micrometer Overview 3 | :docinfo1: 4 | 5 | Micrometer provides a simple facade over the instrumentation clients for the most popular observability systems, allowing you to instrument your JVM-based application code without vendor lock-in. 6 | Think SLF4J, but for application observability! Data recorded by Micrometer are intended to be used to observe, alert, and react to the current/recent operational state of your environment. 7 | 8 | Join the discussion with any comments and feature requests on Micrometer's public https://slack.micrometer.io[Slack Workspace]. 9 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/reference.adoc: -------------------------------------------------------------------------------- 1 | [[overview]] 2 | = Micrometer Reference Instrumentations 3 | :docinfo1: 4 | 5 | Micrometer comes with inbuilt support for multiple frameworks. -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/reference/commons-pool.adoc: -------------------------------------------------------------------------------- 1 | [[overview]] 2 | = Apache Commons Pool Instrumentation 3 | 4 | https://commons.apache.org/proper/commons-pool/[Apache Commons Pool] is an open source software library provides an object-pooling API and a number of object pool implementations. 5 | 6 | Below you can find an example of how to instrument Apache Commons Pool with Micrometer. 7 | 8 | [source,java,subs=+attributes] 9 | ----- 10 | // Setting up instrumentation 11 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/commonspool2/CommonsObjectPool2MetricsTest.java[tags=setup, indent=0] 12 | 13 | // Generic Pool instrumentation (with examples of created meters) 14 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/commonspool2/CommonsObjectPool2MetricsTest.java[tags=generic_pool, indent=0] 15 | 16 | // Generic Keyed Pool instrumentation (with examples of created meters) 17 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/commonspool2/CommonsObjectPool2MetricsTest.java[tags=generic_keyed_pool, indent=0] 18 | ----- 19 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/reference/logging.adoc: -------------------------------------------------------------------------------- 1 | [[overview]] 2 | = Logging Metrics Instrumentation 3 | 4 | Micrometer can add metrics to different loggers: 5 | 6 | * <> 7 | * <> 8 | 9 | [[logging-log4j]] 10 | == Log4j Instrumentation 11 | 12 | [source,java,subs=+attributes] 13 | ----- 14 | // Setting up instrumentation 15 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/logging/Log4j2MetricsTest.java[tags=setup, indent=0] 16 | 17 | // Usage example 18 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/logging/Log4j2MetricsTest.java[tags=example, indent=0] 19 | ----- 20 | 21 | [[logging-logback]] 22 | == Logback Instrumentation 23 | 24 | [source,java,subs=+attributes] 25 | ----- 26 | // Setting up instrumentation 27 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/logging/LogbackMetricsTest.java[tags=setup, indent=0] 28 | 29 | // Usage example 30 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/logging/LogbackMetricsTest.java[tags=example, indent=0] 31 | ----- 32 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/reference/netty.adoc: -------------------------------------------------------------------------------- 1 | [[overview]] 2 | = Netty Instrumentation 3 | 4 | Micrometer supports binding metrics to Netty. 5 | 6 | You can collect metrics from `ByteBuf` allocators and from `EventLoopGroup` instances. 7 | If you already know the resources, you can create instrumentation only once at startup: 8 | 9 | [source,java,subs=+attributes] 10 | ----- 11 | include::{include-java}/netty/NettyMetricsTests.java[tags=directInstrumentation,indent=0] 12 | ----- 13 | 14 | Netty infrastructure can be configured in many ways, so you can also instrument lazily at runtime, as resources are used. 15 | The following example shows how to lazily create instrumentation: 16 | 17 | [source,java,subs=+attributes] 18 | ----- 19 | include::{include-java}/netty/NettyMetricsTests.java[tags=channelInstrumentation,indent=0] 20 | ----- 21 | 22 | CAUTION: If you use lazy instrumentation, you must ensure that you do not bind metrics for the same resource multiple times, as this can have runtime drawbacks. 23 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/reference/tomcat.adoc: -------------------------------------------------------------------------------- 1 | [[overview]] 2 | = Apache Tomcat Metrics Instrumentation 3 | 4 | The https://tomcat.apache.org/[Apache Tomcat] software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. 5 | 6 | [source,java,subs=+attributes] 7 | ----- 8 | // Setting up instrumentation 9 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/tomcat/TomcatMetricsTest.java[tags=setup, indent=0] 10 | 11 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/tomcat/TomcatMetricsTest.java[tags=monitor, indent=0] 12 | 13 | // Example of Tomcat metrics 14 | include::{include-core-test-java}/io/micrometer/core/instrument/binder/tomcat/TomcatMetricsTest.java[tags=example, indent=0] 15 | ----- 16 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.caching=true 2 | org.gradle.jvmargs=-Xmx1g 3 | org.gradle.parallel=true 4 | org.gradle.vfs.watch=true 5 | 6 | compatibleVersion=1.15.0 7 | 8 | kotlin.stdlib.default.dependency=false 9 | 10 | nebula.dependencyLockPluginEnabled=false 11 | -------------------------------------------------------------------------------- /gradle/licenseHeader.txt: -------------------------------------------------------------------------------- 1 | Copyright ${year} VMware, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | https://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-appoptics/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | 6 | testImplementation project(':micrometer-test') 7 | testImplementation libs.mockitoCore5 8 | } 9 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-appoptics/src/main/java/io/micrometer/appoptics/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.appoptics; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-atlas/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | api libs.spectatorAtlas 5 | 6 | testImplementation project(':micrometer-test') 7 | } 8 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-atlas/src/main/java/io/micrometer/atlas/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.atlas; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-azure-monitor/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | api libs.applicationInsights 5 | implementation libs.slf4jApi 6 | 7 | testImplementation project(':micrometer-test') 8 | // required by jdk 9+ 9 | testRuntimeOnly libs.jaxbApi 10 | } 11 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-azure-monitor/src/main/java/io/micrometer/azuremonitor/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.azuremonitor; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-cloudwatch2/build.gradle: -------------------------------------------------------------------------------- 1 | description = 'MeterRegistry implementation for publishing to CloudWatch using the AWS SDK v2.' 2 | 3 | dependencies { 4 | api project(':micrometer-core') 5 | 6 | api libs.cloudwatch2 7 | implementation libs.slf4jApi 8 | 9 | testImplementation project(':micrometer-test') 10 | testImplementation libs.mockitoCore5 11 | } 12 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-cloudwatch2/src/main/java/io/micrometer/cloudwatch2/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.cloudwatch2; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-datadog/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | 6 | testImplementation project(':micrometer-test') 7 | testImplementation libs.mockitoCore5 8 | } 9 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-datadog/src/main/java/io/micrometer/datadog/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.datadog; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-dynatrace/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | 6 | implementation(libs.dynatraceUtils) 7 | 8 | testImplementation project(':micrometer-test') 9 | testImplementation libs.mockitoCore5 10 | testImplementation libs.jacksonDatabind 11 | testImplementation libs.awaitility 12 | } 13 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-dynatrace/src/main/java/io/micrometer/dynatrace/DynatraceApiVersion.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.dynatrace; 17 | 18 | /** 19 | * An enum containing valid Dynatrace API versions. 20 | * 21 | * @author Georg Pirklbauer 22 | * @since 1.8.0 23 | */ 24 | public enum DynatraceApiVersion { 25 | 26 | V1, V2 27 | 28 | } 29 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-dynatrace/src/main/java/io/micrometer/dynatrace/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.dynatrace; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-dynatrace/src/main/java/io/micrometer/dynatrace/types/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Dynatrace-specific Meters to support Dynatrace v2 metrics API. 19 | */ 20 | package io.micrometer.dynatrace.types; 21 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-dynatrace/src/main/java/io/micrometer/dynatrace/v1/DynatraceBatchedPayload.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.dynatrace.v1; 17 | 18 | class DynatraceBatchedPayload { 19 | 20 | final String payload; 21 | 22 | final int metricCount; 23 | 24 | DynatraceBatchedPayload(String payload, int metricCount) { 25 | this.payload = payload; 26 | this.metricCount = metricCount; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-dynatrace/src/main/java/io/micrometer/dynatrace/v1/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Support for Dynatrace v1 metrics API export. 19 | */ 20 | package io.micrometer.dynatrace.v1; 21 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-dynatrace/src/main/java/io/micrometer/dynatrace/v2/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Support for Dynatrace v2 metrics API export. 19 | */ 20 | package io.micrometer.dynatrace.v2; 21 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-elastic/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | 6 | testImplementation project(':micrometer-test') 7 | // TODO: upgrade when we figure out how to unbreak things due to this change: https://github.com/testcontainers/testcontainers-java/pull/5099 8 | testImplementation 'org.testcontainers:elasticsearch:1.16.3' 9 | testImplementation libs.testcontainers.junitJupiter 10 | testImplementation libs.jsonPath 11 | testImplementation libs.logback12 12 | } 13 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-elastic/src/main/java/io/micrometer/elastic/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.elastic; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-elastic/src/test/java/io/micrometer/elastic/Elasticsearch7ApiKeyIntegrationTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.elastic; 17 | 18 | /** 19 | * Integration tests with API key authentication for Elasticsearch 7. 20 | * 21 | * @author Johnny Lim 22 | */ 23 | class Elasticsearch7ApiKeyIntegrationTest extends AbstractElasticsearchApiKeyIntegrationTest { 24 | 25 | @Override 26 | protected String getVersion() { 27 | return VERSION_7; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-elastic/src/test/java/io/micrometer/elastic/Elasticsearch8ApiKeyIntegrationTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.elastic; 17 | 18 | /** 19 | * Integration tests with API key authentication for Elasticsearch 8. 20 | * 21 | * @author Johnny Lim 22 | */ 23 | class Elasticsearch8ApiKeyIntegrationTest extends AbstractElasticsearchApiKeyIntegrationTest { 24 | 25 | @Override 26 | protected String getVersion() { 27 | return VERSION_8; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-ganglia/README.adoc: -------------------------------------------------------------------------------- 1 | = micrometer-registry-ganglia 2 | 3 | This module contains the implementation of a Micrometer `MeterRegistry` for the Ganglia metrics backend. 4 | 5 | NOTE: The micrometer-registry-ganglia module uses the https://github.com/ganglia/gmetric4j[gmetric4j] library which contains classes generated by the LGPL licensed https://sourceforge.net/projects/remotetea/[remotetea project] 6 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-ganglia/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | api libs.gmetric4j 5 | implementation libs.slf4jApi 6 | 7 | // Deprecated constructor references this which is otherwise unused. 8 | compileOnly libs.dropwizardMetricsCore 9 | 10 | testImplementation project(':micrometer-test') 11 | } 12 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-ganglia/src/main/java/io/micrometer/ganglia/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.ganglia; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-graphite/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | api libs.dropwizardMetricsGraphite 5 | 6 | testImplementation project(':micrometer-test') 7 | testImplementation platform(libs.reactorBom) 8 | testImplementation 'io.projectreactor.netty:reactor-netty-core' 9 | } 10 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-graphite/src/main/java/io/micrometer/graphite/GraphiteProtocol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.graphite; 17 | 18 | public enum GraphiteProtocol { 19 | 20 | PLAINTEXT, UDP, PICKLED 21 | 22 | } 23 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-graphite/src/main/java/io/micrometer/graphite/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.graphite; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-health/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | 6 | testImplementation project(':micrometer-test') 7 | } 8 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-health/src/main/java/io/micrometer/health/objectives/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Predefined {@link io.micrometer.health.ServiceLevelObjective ServiceLevelObjective 19 | * classes}. 20 | */ 21 | package io.micrometer.health.objectives; 22 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-health/src/main/java/io/micrometer/health/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | /** 17 | * SLO-based health meter registry. 18 | */ 19 | @NullMarked 20 | package io.micrometer.health; 21 | 22 | import org.jspecify.annotations.NullMarked; 23 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-humio/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | 6 | testImplementation project(':micrometer-test') 7 | } 8 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-humio/src/main/java/io/micrometer/humio/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.humio; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-influx/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | 6 | testImplementation project(':micrometer-test') 7 | } 8 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-influx/src/main/java/io/micrometer/influx/InfluxConsistency.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.influx; 17 | 18 | public enum InfluxConsistency { 19 | 20 | ANY, ONE, QUORUM, ALL 21 | 22 | } 23 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-influx/src/main/java/io/micrometer/influx/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.influx; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-jmx/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | api libs.dropwizardMetricsJmx 5 | 6 | testImplementation project(':micrometer-test') 7 | testImplementation libs.logback12 8 | } 9 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-jmx/src/main/java/io/micrometer/jmx/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.jmx; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-kairos/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | 6 | testImplementation project(':micrometer-test') 7 | } 8 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-kairos/src/main/java/io/micrometer/kairos/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.kairos; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-new-relic/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | optionalApi libs.newrelicApi 6 | 7 | testImplementation project(':micrometer-test') 8 | testImplementation libs.mockitoCore5 9 | } 10 | 11 | jar { 12 | // gh-3412 override our default name because 'new' is a reserved word 13 | manifest.attributes.put('Automatic-Module-Name', 'micrometer.registry.newrelic') 14 | } 15 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-new-relic/src/main/java/io/micrometer/newrelic/ClientProviderType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.newrelic; 17 | 18 | /** 19 | * Types for {@link NewRelicClientProvider}. 20 | * 21 | * @author Neil Powell 22 | * @since 1.4.0 23 | */ 24 | public enum ClientProviderType { 25 | 26 | INSIGHTS_API, INSIGHTS_AGENT 27 | 28 | } 29 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-new-relic/src/main/java/io/micrometer/newrelic/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.newrelic; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-opentsdb/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | implementation libs.slf4jApi 5 | 6 | testImplementation project(':micrometer-test') 7 | } 8 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-opentsdb/src/main/java/io/micrometer/opentsdb/OpenTSDBFlavor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.opentsdb; 17 | 18 | /** 19 | * OpenTSDB flavors. 20 | * 21 | * @author Jon Schneider 22 | * @since 1.4.0 23 | */ 24 | public enum OpenTSDBFlavor { 25 | 26 | VictoriaMetrics 27 | 28 | } 29 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-opentsdb/src/main/java/io/micrometer/opentsdb/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.opentsdb; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-otlp/build.gradle: -------------------------------------------------------------------------------- 1 | description = 'Publishes Micrometer meters in OTLP format' 2 | 3 | dependencies { 4 | api project(':micrometer-core') 5 | 6 | implementation libs.openTelemetry.proto 7 | 8 | testImplementation project(':micrometer-test') 9 | testImplementation libs.systemStubsJupiter 10 | testImplementation libs.restAssured 11 | testImplementation libs.testcontainers.junitJupiter 12 | testImplementation libs.awaitility 13 | testImplementation libs.mockitoCore5 14 | } 15 | 16 | dockerTest { 17 | systemProperty 'otel-collector-image.version', '0.104.0' 18 | } 19 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-otlp/src/main/java/io/micrometer/registry/otlp/OtlpHistogramSupport.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.registry.otlp; 17 | 18 | import io.micrometer.registry.otlp.internal.ExponentialHistogramSnapShot; 19 | import org.jspecify.annotations.Nullable; 20 | 21 | interface OtlpHistogramSupport { 22 | 23 | @Nullable ExponentialHistogramSnapShot getExponentialHistogramSnapShot(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-otlp/src/main/java/io/micrometer/registry/otlp/StartTimeAwareMeter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.registry.otlp; 17 | 18 | import io.micrometer.core.instrument.Meter; 19 | 20 | interface StartTimeAwareMeter extends Meter { 21 | 22 | long getStartTimeNanos(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-otlp/src/main/java/io/micrometer/registry/otlp/internal/IndexProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.registry.otlp.internal; 17 | 18 | interface IndexProvider { 19 | 20 | int getIndexForValue(final double value); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-otlp/src/main/java/io/micrometer/registry/otlp/internal/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | @NullMarked 18 | package io.micrometer.registry.otlp.internal; 19 | 20 | import org.jspecify.annotations.NullMarked; 21 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-otlp/src/main/java/io/micrometer/registry/otlp/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.registry.otlp; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-otlp/src/test/resources/otlp-config.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2022 VMware, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # https://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | otlp.resourceAttributes=key1=value1,key2=value2 18 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-prometheus-simpleclient/build.gradle: -------------------------------------------------------------------------------- 1 | description = 'MeterRegistry implementation for Prometheus using io.prometheus:simpleclient_common. This module is deprecated in favor of io.micrometer:micrometer-registry-prometheus that uses io.prometheus:prometheus-metrics-core.' 2 | 3 | dependencies { 4 | api(platform(libs.prometheusSimpleClientBom)) 5 | 6 | api project(':micrometer-core') 7 | 8 | api libs.prometheusSimpleClient 9 | 10 | testImplementation project(':micrometer-test') 11 | } 12 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-prometheus-simpleclient/src/main/java/io/micrometer/prometheus/HistogramFlavor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.prometheus; 17 | 18 | /** 19 | * Histogram flavors. 20 | * 21 | * @deprecated since 1.13.0, unfortunately there is no replacement right now since the new 22 | * Prometheus client does not support custom histogram bucket names. 23 | * @author Jon Schneider 24 | * @since 1.4.0 25 | */ 26 | @Deprecated 27 | public enum HistogramFlavor { 28 | 29 | Prometheus, VictoriaMetrics 30 | 31 | } 32 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-prometheus-simpleclient/src/main/java/io/micrometer/prometheus/RequiresNonNull.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.prometheus; 17 | 18 | import java.lang.annotation.*; 19 | 20 | /** 21 | * This is for internal use only. 22 | */ 23 | @Documented 24 | @Retention(RetentionPolicy.CLASS) 25 | @Target(ElementType.METHOD) 26 | @interface RequiresNonNull { 27 | 28 | /** 29 | * The list of fields that are non-null. 30 | */ 31 | String[] value(); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-prometheus-simpleclient/src/main/java/io/micrometer/prometheus/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Deprecated since 1.13.0, use io.micrometer:micrometer-registry-prometheus instead, the 19 | * new package name is {@code io.micrometer.prometheusmetrics}. 20 | */ 21 | @NullMarked 22 | @Deprecated 23 | package io.micrometer.prometheus; 24 | 25 | import org.jspecify.annotations.NullMarked; 26 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-prometheus/build.gradle: -------------------------------------------------------------------------------- 1 | description = 'MeterRegistry implementation for Prometheus using io.prometheus:prometheus-metrics-core. If you have compatibility issues with this module, you can go back to io.micrometer:micrometer-registry-prometheus-simpleclient that uses io.prometheus:simpleclient_common.' 2 | 3 | dependencies { 4 | api(platform(libs.prometheusMetricsBom)) 5 | 6 | api project(':micrometer-core') 7 | 8 | api(libs.prometheusMetrics) { 9 | // We only need SpanContext from prometheus-metrics-tracer-common, we don't need 10 | // prometheus-metrics-tracer-initializer nor the dependencies it pulls in 11 | exclude(group: 'io.prometheus', module: 'prometheus-metrics-tracer-initializer') 12 | } 13 | api libs.prometheusMetricsTracerCommon 14 | implementation libs.prometheusMetricsExpositionFormats 15 | 16 | testImplementation project(':micrometer-test') 17 | testImplementation libs.restAssured 18 | testImplementation libs.testcontainers.junitJupiter 19 | testImplementation libs.awaitility 20 | } 21 | 22 | dockerTest { 23 | systemProperty 'prometheus.version', 'v2.55.1' 24 | } 25 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-prometheus/src/main/java/io/micrometer/prometheusmetrics/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.prometheusmetrics; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-prometheus/src/test/resources/prometheus.yml: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2024 VMware, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # https://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | global: 18 | scrape_interval: 5s 19 | evaluation_interval: 5s 20 | 21 | scrape_configs: 22 | - job_name: 'test-app-om' # test app that produces OpenMetrics output 23 | static_configs: 24 | - targets: [ 'host.testcontainers.internal:12345'] 25 | - job_name: 'test-app-pt' # test app that produces Prometheus text output 26 | static_configs: 27 | - targets: [ 'host.testcontainers.internal:12346' ] 28 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-signalfx/build.gradle: -------------------------------------------------------------------------------- 1 | description = 'MeterRegistry implementation for sending metrics to SignalFX. This module is deprecated in favor of the micrometer-registry-otlp module.' 2 | 3 | dependencies { 4 | api project(':micrometer-core') 5 | 6 | api libs.signalfx 7 | implementation libs.slf4jApi 8 | 9 | testImplementation project(':micrometer-test') 10 | } 11 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-signalfx/src/main/java/io/micrometer/signalfx/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.signalfx; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-stackdriver/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | api platform(libs.googleCloudLibrariesBom) 5 | 6 | api(libs.googleCloudMonitoring) { 7 | // see gh-4010 8 | exclude group: 'com.google.guava', module: 'listenablefuture' 9 | } 10 | api libs.googleOauth2Http 11 | implementation libs.slf4jApi 12 | compileOnly libs.logback12 13 | testRuntimeOnly libs.logback12 14 | // needed for extending TimeWindowPercentileHistogram in StackdriverHistogramUtil 15 | compileOnly libs.hdrhistogram 16 | 17 | testImplementation project(':micrometer-test') 18 | } 19 | 20 | test { 21 | useJUnitPlatform { 22 | excludeTags 'gcp-it' 23 | } 24 | } 25 | 26 | tasks.register("stackdriverTest", Test) { 27 | useJUnitPlatform { 28 | includeTags 'gcp-it' 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.stackdriver; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-stackdriver/src/main/java/io/micrometer/stackdriver/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Utilities for Stackdriver. 19 | */ 20 | package io.micrometer.stackdriver.util; 21 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-statsd/src/main/java/io/micrometer/statsd/StatsdMetrics.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.statsd; 17 | 18 | import io.micrometer.core.instrument.MeterRegistry; 19 | import io.micrometer.core.instrument.binder.MeterBinder; 20 | 21 | /** 22 | * @deprecated statsd metrics are no longer available since 1.4.0 23 | */ 24 | @Deprecated 25 | public class StatsdMetrics implements MeterBinder { 26 | 27 | @Override 28 | public void bindTo(MeterRegistry registry) { 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-statsd/src/main/java/io/micrometer/statsd/StatsdPollable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.statsd; 17 | 18 | interface StatsdPollable { 19 | 20 | void poll(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-statsd/src/main/java/io/micrometer/statsd/StatsdProtocol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.statsd; 17 | 18 | /** 19 | * Protocol for StatsD. 20 | * 21 | * @author Soroosh Sarabadani 22 | * @since 1.2.0 23 | */ 24 | public enum StatsdProtocol { 25 | 26 | UDP, 27 | /** 28 | * Unix domain socket datagram. 29 | * @since 1.8.0 30 | */ 31 | UDS_DATAGRAM, TCP 32 | 33 | } 34 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-statsd/src/main/java/io/micrometer/statsd/internal/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.statsd.internal; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-statsd/src/main/java/io/micrometer/statsd/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.statsd; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-wavefront/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api project(':micrometer-core') 3 | 4 | api libs.wavefront 5 | implementation libs.slf4jApi 6 | 7 | testImplementation project(':micrometer-test') 8 | testImplementation libs.mockitoCore5 9 | } 10 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-wavefront/src/main/java/io/micrometer/wavefront/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.wavefront; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-wavefront/src/test/resources/invalid.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2023 VMware, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # https://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | wavefront.uri=:not-a-uri 18 | -------------------------------------------------------------------------------- /implementations/micrometer-registry-wavefront/src/test/resources/valid.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2023 VMware, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # https://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | wavefront.uri=proxy://example.com:2878 18 | -------------------------------------------------------------------------------- /micrometer-bom/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java-platform' 3 | } 4 | 5 | description 'Micrometer BOM (Bill of Materials) for managing Micrometer artifact versions' 6 | 7 | dependencies { 8 | constraints { 9 | rootProject.subprojects.findAll { 10 | !it.name.contains('sample') && 11 | !it.name.contains('benchmark') && 12 | !it.name.contains('concurrency-tests') && 13 | !it.name.contains('micrometer-bom') && 14 | !it.name.contains('micrometer-osgi-test') && 15 | !it.name.contains('-test-aspectj') && 16 | it.name != 'docs' 17 | }.each { 18 | api(group: it.group, 19 | name: it.name, 20 | version: it.version.toString()) 21 | } 22 | api libs.contextPropagation 23 | } 24 | } 25 | 26 | publishing { 27 | publications { 28 | nebula(MavenPublication) { 29 | from components.javaPlatform 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /micrometer-commons/build.gradle: -------------------------------------------------------------------------------- 1 | description 'Module containing common code' 2 | 3 | dependencies { 4 | // internal logger 5 | optionalApi libs.logback12 6 | 7 | // Aspects 8 | optionalApi libs.aspectjrt 9 | 10 | testImplementation libs.assertj 11 | } 12 | 13 | jar { 14 | bundle { 15 | 16 | bnd '''\ 17 | Import-Package: \ 18 | org.aspectj.*;resolution:=dynamic,\ 19 | javax.annotation.*;resolution:=optional;version="${@}",\ 20 | * 21 | '''.stripIndent() 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /micrometer-commons/src/main/java/io/micrometer/common/annotation/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.common.annotation; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-commons/src/main/java/io/micrometer/common/docs/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.common.docs; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-commons/src/main/java/io/micrometer/common/lang/internal/Contract.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.common.lang.internal; 17 | 18 | import java.lang.annotation.*; 19 | 20 | /** 21 | * This is for internal use only. 22 | */ 23 | @Documented 24 | @Retention(RetentionPolicy.CLASS) 25 | @Target(ElementType.METHOD) 26 | public @interface Contract { 27 | 28 | String value() default ""; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /micrometer-commons/src/main/java/io/micrometer/common/lang/internal/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2025 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.common.lang.internal; 17 | -------------------------------------------------------------------------------- /micrometer-commons/src/main/java/io/micrometer/common/lang/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.common.lang; 17 | -------------------------------------------------------------------------------- /micrometer-commons/src/main/java/io/micrometer/common/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.common; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-commons/src/main/java/io/micrometer/common/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.common.util; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-commons/src/test/java/io/micrometer/common/annotation/NoOpValueResolverTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.common.annotation; 17 | 18 | import org.junit.jupiter.api.Test; 19 | 20 | import static org.assertj.core.api.BDDAssertions.then; 21 | 22 | /** 23 | * @author Marcin Grzejszczak 24 | */ 25 | class NoOpValueResolverTests { 26 | 27 | @Test 28 | void should_return_empty_string() { 29 | then(new NoOpValueResolver().resolve("")).isBlank(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/annotation/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Core annotations. 19 | */ 20 | package io.micrometer.core.annotation; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/aop/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * AOP-based metrics support. 19 | */ 20 | package io.micrometer.core.aop; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/cache/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | package io.micrometer.core.instrument.binder.cache; 18 | 19 | import io.micrometer.common.lang.NonNullApi; 20 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/commonspool2/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for Apache Commons Pool 2.x. 19 | */ 20 | package io.micrometer.core.instrument.binder.commonspool2; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/db/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for databases. 19 | */ 20 | package io.micrometer.core.instrument.binder.db; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/grpc/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | /** 17 | * Collect metrics for grpc-java clients and servers. 18 | * 19 | * Refer to 20 | * {@link io.micrometer.core.instrument.binder.grpc.MetricCollectingClientInterceptor} and 21 | * {@link io.micrometer.core.instrument.binder.grpc.MetricCollectingServerInterceptor} for 22 | * usage examples. 23 | */ 24 | @NonNullApi 25 | package io.micrometer.core.instrument.binder.grpc; 26 | 27 | import io.micrometer.common.lang.NonNullApi; 28 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/http/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.binder.http; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/httpcomponents/hc5/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for Apache HttpComponents 5. 19 | */ 20 | @NonNullFields 21 | @NonNullApi 22 | package io.micrometer.core.instrument.binder.httpcomponents.hc5; 23 | 24 | import io.micrometer.common.lang.NonNullApi; 25 | import io.micrometer.common.lang.NonNullFields; 26 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/httpcomponents/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for Apache HttpComponents. 19 | */ 20 | @NonNullFields 21 | @NonNullApi 22 | package io.micrometer.core.instrument.binder.httpcomponents; 23 | 24 | import io.micrometer.common.lang.NonNullApi; 25 | import io.micrometer.common.lang.NonNullFields; 26 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/hystrix/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for Hystrix. Deprecated since 1.13.0, Hystrix is no longer in active 19 | * development, and is currently in maintenance mode. 20 | */ 21 | @Deprecated 22 | package io.micrometer.core.instrument.binder.hystrix; 23 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/jersey/server/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for Jersey. 19 | * @deprecated since 1.13.0 use the jersey-micrometer module in the Jersey project instead 20 | */ 21 | package io.micrometer.core.instrument.binder.jersey.server; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/jetty/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for Jetty. 19 | */ 20 | @NonNullApi 21 | package io.micrometer.core.instrument.binder.jetty; 22 | 23 | import io.micrometer.common.lang.NonNullApi; 24 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/jpa/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for JPA. 19 | */ 20 | package io.micrometer.core.instrument.binder.jpa; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/jvm/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for JVM. 19 | */ 20 | package io.micrometer.core.instrument.binder.jvm; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/kafka/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for Apache Kafka. 19 | */ 20 | package io.micrometer.core.instrument.binder.kafka; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/logging/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for logging frameworks. 19 | */ 20 | package io.micrometer.core.instrument.binder.logging; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/mongodb/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for MongoDB. 19 | */ 20 | package io.micrometer.core.instrument.binder.mongodb; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/netty4/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for Netty 4.x. 19 | */ 20 | @NonNullApi 21 | @NonNullFields 22 | package io.micrometer.core.instrument.binder.netty4; 23 | 24 | import io.micrometer.common.lang.NonNullApi; 25 | import io.micrometer.common.lang.NonNullFields; 26 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/okhttp3/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for OkHttp 3. 19 | */ 20 | package io.micrometer.core.instrument.binder.okhttp3; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders. 19 | */ 20 | @NonNullApi 21 | @NonNullFields 22 | package io.micrometer.core.instrument.binder; 23 | 24 | import io.micrometer.common.lang.NonNullApi; 25 | import io.micrometer.common.lang.NonNullFields; 26 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/system/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for an operating system. 19 | */ 20 | package io.micrometer.core.instrument.binder.system; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/binder/tomcat/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Meter binders for Apache Tomcat. 19 | */ 20 | package io.micrometer.core.instrument.binder.tomcat; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/composite/CompositeMeter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.composite; 17 | 18 | import io.micrometer.core.instrument.Meter; 19 | import io.micrometer.core.instrument.MeterRegistry; 20 | 21 | interface CompositeMeter extends Meter { 22 | 23 | void add(MeterRegistry registry); 24 | 25 | void remove(MeterRegistry registry); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/composite/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.composite; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/config/MeterFilterReply.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.config; 17 | 18 | public enum MeterFilterReply { 19 | 20 | DENY, NEUTRAL, ACCEPT 21 | 22 | } 23 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/config/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.config; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/config/validate/InvalidReason.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.config.validate; 17 | 18 | /** 19 | * Invalid reason. 20 | * 21 | * @author Jon Schneider 22 | * @since 1.5.0 23 | */ 24 | public enum InvalidReason { 25 | 26 | MALFORMED, MISSING 27 | 28 | } 29 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/config/validate/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Support for meter registry configuration validation. 19 | */ 20 | package io.micrometer.core.instrument.config.validate; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/cumulative/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.cumulative; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/distribution/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.distribution; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/distribution/pause/NoPauseDetector.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.distribution.pause; 17 | 18 | public class NoPauseDetector implements PauseDetector { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/distribution/pause/PauseDetector.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.distribution.pause; 17 | 18 | public interface PauseDetector { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/distribution/pause/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.distribution.pause; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/docs/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.docs; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/dropwizard/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.dropwizard; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/internal/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.internal; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/kotlin/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.kotlin; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/logging/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.logging; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/noop/NoopCounter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.noop; 17 | 18 | import io.micrometer.core.instrument.Counter; 19 | 20 | public class NoopCounter extends NoopMeter implements Counter { 21 | 22 | public NoopCounter(Id id) { 23 | super(id); 24 | } 25 | 26 | @Override 27 | public void increment(double amount) { 28 | } 29 | 30 | @Override 31 | public double count() { 32 | return 0; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/noop/NoopFunctionCounter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.noop; 17 | 18 | import io.micrometer.core.instrument.FunctionCounter; 19 | 20 | public class NoopFunctionCounter extends NoopMeter implements FunctionCounter { 21 | 22 | public NoopFunctionCounter(Id id) { 23 | super(id); 24 | } 25 | 26 | @Override 27 | public double count() { 28 | return 0; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/noop/NoopGauge.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.noop; 17 | 18 | import io.micrometer.core.instrument.Gauge; 19 | 20 | public class NoopGauge extends NoopMeter implements Gauge { 21 | 22 | public NoopGauge(Id id) { 23 | super(id); 24 | } 25 | 26 | @Override 27 | public double value() { 28 | return 0; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/noop/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.noop; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/observation/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.observation; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/push/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.push; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/search/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.search; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/simple/CountingMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.simple; 17 | 18 | public enum CountingMode { 19 | 20 | /** 21 | * Counts and totals are monotonically increasing. 22 | */ 23 | CUMULATIVE, 24 | 25 | /** 26 | * Rate normalize counts and totals. 27 | */ 28 | STEP 29 | 30 | } 31 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/simple/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.simple; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/step/StepMeter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.step; 17 | 18 | /** 19 | * Internal. Intentionally package-private. 20 | */ 21 | interface StepMeter { 22 | 23 | /** 24 | * This is an internal method not meant for general use. 25 | *

26 | * Force a rollover of the values returned by a step meter and never roll over again 27 | * after. 28 | */ 29 | void _closingRollover(); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/step/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.step; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/instrument/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.core.instrument.util; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/ipc/http/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Support for HTTP communication. 19 | */ 20 | package io.micrometer.core.ipc.http; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/java/io/micrometer/core/lang/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Common annotations with language-level semantics. 19 | */ 20 | package io.micrometer.core.lang; 21 | -------------------------------------------------------------------------------- /micrometer-core/src/main/resources/META-INF/native-image/io.micrometer/micrometer-core/proxy-config.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "condition": { 4 | "typeReachable": "io.micrometer.core.instrument.binder.jms.JmsInstrumentation" 5 | }, 6 | "interfaces": [ 7 | "jakarta.jms.Session" 8 | ] 9 | }, 10 | { 11 | "condition": { 12 | "typeReachable": "io.micrometer.core.instrument.binder.jms.JmsInstrumentation" 13 | }, 14 | "interfaces": [ 15 | "jakarta.jms.MessageConsumer" 16 | ] 17 | }, 18 | { 19 | "condition": { 20 | "typeReachable": "io.micrometer.core.instrument.binder.jms.JmsInstrumentation" 21 | }, 22 | "interfaces": [ 23 | "jakarta.jms.MessageProducer" 24 | ] 25 | } 26 | ] 27 | -------------------------------------------------------------------------------- /micrometer-core/src/test/java/io/micrometer/core/aop/CountedAspectTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.aop; 17 | 18 | /** 19 | * Unit tests for the {@link CountedAspect} aspect have been moved to the module 20 | * micrometer-samples-spring-framework6 to test with the current version of Spring that 21 | * requires JDK 17+. 22 | * 23 | * @author Ali Dehghani 24 | * @author Tommy Ludwig 25 | * @author Johnny Lim 26 | * @author Yanming Zhou 27 | */ 28 | class CountedAspectTest { 29 | 30 | } 31 | -------------------------------------------------------------------------------- /micrometer-core/src/test/java/io/micrometer/core/aop/MeterTagSupportTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.aop; 17 | 18 | /** 19 | * Tests for {@link MeterTagSupport} have been moved to the module 20 | * micrometer-samples-spring-framework6 to test with the current version of Spring that 21 | * requires JDK 17+. 22 | * 23 | * @author Marcin Grzejszczak 24 | * @author Johnny Lim 25 | */ 26 | class MeterTagSupportTests { 27 | 28 | } 29 | -------------------------------------------------------------------------------- /micrometer-core/src/test/java/io/micrometer/core/aop/TimedAspectTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.aop; 17 | 18 | /** 19 | * {@link TimedAspect} tests have been moved to the module 20 | * micrometer-samples-spring-framework6 to test with the current version of Spring that 21 | * requires JDK 17+. 22 | */ 23 | class TimedAspectTest { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /micrometer-core/src/test/java/io/micrometer/core/instrument/binder/jvm/GcTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.binder.jvm; 17 | 18 | import org.junit.jupiter.api.Tag; 19 | 20 | import java.lang.annotation.ElementType; 21 | import java.lang.annotation.Retention; 22 | import java.lang.annotation.RetentionPolicy; 23 | import java.lang.annotation.Target; 24 | 25 | @Target({ ElementType.TYPE, ElementType.METHOD }) 26 | @Retention(RetentionPolicy.RUNTIME) 27 | @Tag("gc") 28 | public @interface GcTest { 29 | 30 | } 31 | -------------------------------------------------------------------------------- /micrometer-core/src/test/java/io/micrometer/core/testsupport/classpath/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Custom JUnit extension to change the classpath. The code in this package was copied 19 | * from the Spring Boot project. 20 | */ 21 | package io.micrometer.core.testsupport.classpath; 22 | -------------------------------------------------------------------------------- /micrometer-core/src/test/java/io/micrometer/core/testsupport/system/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012-2019 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Classes for {@link java.lang.System System}-related testing. 19 | */ 20 | package io.micrometer.core.testsupport.system; 21 | -------------------------------------------------------------------------------- /micrometer-jakarta9/build.gradle: -------------------------------------------------------------------------------- 1 | description 'Module for Jakarta 9+ based instrumentations' 2 | 3 | jar { 4 | bundle { 5 | 6 | bnd '''\ 7 | Import-Package: \ 8 | jakarta.jms.*;resolution:=dynamic;version="${@}",\ 9 | io.micrometer.observation.*;resolution:=dynamic;version="${@}",\ 10 | * 11 | '''.stripIndent() 12 | } 13 | } 14 | 15 | dependencies { 16 | api project(":micrometer-core") 17 | api project(":micrometer-commons") 18 | api project(":micrometer-observation") 19 | 20 | optionalApi libs.jakarta.jmsApi 21 | 22 | testImplementation(libs.archunitJunit5) { 23 | // avoid transitively pulling in slf4j 2 24 | exclude group: "org.slf4j", module: "slf4j-api" 25 | } 26 | testImplementation libs.slf4jApi 27 | testImplementation libs.mockitoCore5 28 | testImplementation libs.assertj 29 | } 30 | -------------------------------------------------------------------------------- /micrometer-jakarta9/src/main/java/io/micrometer/jakarta9/instrument/jms/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Observation instrumentation for Jakarta JMS. 19 | */ 20 | @NullMarked 21 | package io.micrometer.jakarta9.instrument.jms; 22 | 23 | import org.jspecify.annotations.NullMarked; 24 | -------------------------------------------------------------------------------- /micrometer-java11/build.gradle: -------------------------------------------------------------------------------- 1 | description 'Micrometer core classes that require Java 11' 2 | 3 | dependencies { 4 | api project(":micrometer-core") 5 | 6 | testImplementation project(":micrometer-test") 7 | testImplementation libs.wiremockJunit5 8 | testImplementation libs.wiremock 9 | testImplementation project(":micrometer-observation-test") 10 | } 11 | 12 | java { 13 | targetCompatibility = JavaVersion.VERSION_11 14 | } 15 | 16 | tasks.withType(JavaCompile).configureEach { 17 | sourceCompatibility = JavaVersion.VERSION_11 18 | targetCompatibility = JavaVersion.VERSION_11 19 | options.release = 11 20 | } 21 | -------------------------------------------------------------------------------- /micrometer-java11/src/main/java/io/micrometer/java11/instrument/binder/jdk/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Instrumentation of JDK classes. 19 | */ 20 | @NullMarked 21 | package io.micrometer.java11.instrument.binder.jdk; 22 | 23 | import org.jspecify.annotations.NullMarked; 24 | -------------------------------------------------------------------------------- /micrometer-java21/src/main/java/io/micrometer/java21/instrument/binder/jdk/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Instrumentation of JDK classes. 19 | */ 20 | @NullMarked 21 | package io.micrometer.java21.instrument.binder.jdk; 22 | 23 | import org.jspecify.annotations.NullMarked; 24 | -------------------------------------------------------------------------------- /micrometer-jetty11/build.gradle: -------------------------------------------------------------------------------- 1 | description 'Micrometer instrumentation for Jetty 11' 2 | 3 | dependencies { 4 | api project(":micrometer-core") 5 | api libs.jetty11Server 6 | 7 | testImplementation libs.assertj 8 | } 9 | 10 | java { 11 | targetCompatibility = 11 12 | } 13 | 14 | compileJava { 15 | sourceCompatibility = JavaVersion.VERSION_11 16 | targetCompatibility = JavaVersion.VERSION_11 17 | options.release = 11 18 | } 19 | -------------------------------------------------------------------------------- /micrometer-jetty11/src/main/java/io/micrometer/jetty11/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Instrumentation for Jetty 11. 19 | */ 20 | @NullMarked 21 | package io.micrometer.jetty11; 22 | 23 | import org.jspecify.annotations.NullMarked; 24 | -------------------------------------------------------------------------------- /micrometer-jetty12/build.gradle: -------------------------------------------------------------------------------- 1 | description 'Micrometer instrumentation for Jetty 12' 2 | 3 | // skip this module when building with jdk <17 4 | if (!javaLanguageVersion.canCompileOrRun(17)) { 5 | project.tasks.configureEach { task -> task.enabled = false } 6 | } 7 | 8 | dependencies { 9 | api project(":micrometer-core") 10 | 11 | optionalApi libs.jetty12Server 12 | optionalApi libs.jetty12Client 13 | 14 | testRuntimeOnly(libs.logbackLatest) 15 | 16 | testImplementation project(":micrometer-observation-test") 17 | testImplementation project(":micrometer-test") 18 | 19 | testImplementation libs.httpcomponents.client 20 | testImplementation libs.awaitility 21 | } 22 | 23 | java { 24 | targetCompatibility = JavaVersion.VERSION_17 25 | } 26 | 27 | compileJava { 28 | sourceCompatibility = JavaVersion.VERSION_17 29 | targetCompatibility = JavaVersion.VERSION_17 30 | options.release = 17 31 | } 32 | -------------------------------------------------------------------------------- /micrometer-jetty12/src/main/java/io/micrometer/jetty12/client/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Instrumentation for Jetty 12 client. 19 | */ 20 | @NullMarked 21 | package io.micrometer.jetty12.client; 22 | 23 | import org.jspecify.annotations.NullMarked; 24 | -------------------------------------------------------------------------------- /micrometer-jetty12/src/main/java/io/micrometer/jetty12/server/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Instrumentation for Jetty 12 server. 19 | */ 20 | @NullMarked 21 | package io.micrometer.jetty12.server; 22 | 23 | import org.jspecify.annotations.NullMarked; 24 | -------------------------------------------------------------------------------- /micrometer-observation-test/build.gradle: -------------------------------------------------------------------------------- 1 | description 'Test compatibility kit for extensions of Micrometer Observation' 2 | 3 | dependencies { 4 | api project(':micrometer-observation') 5 | 6 | api libs.assertj 7 | implementation platform(libs.junitBom) 8 | implementation libs.junitJupiter 9 | 10 | implementation libs.mockitoCore4 11 | 12 | testImplementation libs.awaitility 13 | } 14 | -------------------------------------------------------------------------------- /micrometer-observation-test/src/main/java/io/micrometer/observation/tck/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NonNullApi 17 | @NonNullFields 18 | package io.micrometer.observation.tck; 19 | 20 | import io.micrometer.common.lang.NonNullApi; 21 | import io.micrometer.common.lang.NonNullFields; 22 | -------------------------------------------------------------------------------- /micrometer-observation-test/src/test/java/io/micrometer/observation/tck/ObservationRegistryCompatibilityKitTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.observation.tck; 17 | 18 | import io.micrometer.observation.ObservationRegistry; 19 | 20 | class ObservationRegistryCompatibilityKitTests extends ObservationRegistryCompatibilityKit { 21 | 22 | @Override 23 | public ObservationRegistry registry() { 24 | return ObservationRegistry.create(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /micrometer-observation/src/main/java/io/micrometer/observation/GlobalObservationConvention.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.observation; 17 | 18 | /** 19 | * An observation convention that will be set on the {@link ObservationRegistry}. 20 | * 21 | * @author Marcin Grzejszczak 22 | * @since 1.10.0 23 | */ 24 | public interface GlobalObservationConvention extends ObservationConvention { 25 | 26 | } 27 | -------------------------------------------------------------------------------- /micrometer-observation/src/main/java/io/micrometer/observation/KeyValuesConvention.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.observation; 17 | 18 | import io.micrometer.common.KeyValues; 19 | 20 | /** 21 | * A marker interface for conventions of {@link KeyValues} naming. 22 | * 23 | * @author Marcin Grzejszczak 24 | * @since 1.10.0 25 | */ 26 | public interface KeyValuesConvention { 27 | 28 | } 29 | -------------------------------------------------------------------------------- /micrometer-observation/src/main/java/io/micrometer/observation/annotation/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.observation.annotation; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-observation/src/main/java/io/micrometer/observation/aop/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.observation.aop; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-observation/src/main/java/io/micrometer/observation/contextpropagation/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.observation.contextpropagation; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-observation/src/main/java/io/micrometer/observation/docs/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.observation.docs; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-observation/src/main/java/io/micrometer/observation/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.observation; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-observation/src/main/java/io/micrometer/observation/transport/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.observation.transport; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-observation/src/main/resources/META-INF/services/io.micrometer.context.ThreadLocalAccessor: -------------------------------------------------------------------------------- 1 | io.micrometer.observation.contextpropagation.ObservationThreadLocalAccessor 2 | -------------------------------------------------------------------------------- /micrometer-observation/src/test/java/io/micrometer/observation/aop/ObservedAspectTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.observation.aop; 17 | 18 | /** 19 | * {@link ObservedAspect} tests have been moved to the module 20 | * micrometer-samples-spring-framework6 to test with the current version of Spring that 21 | * requires JDK 17+. 22 | */ 23 | class ObservedAspectTests { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /micrometer-osgi-test/test.bndrun: -------------------------------------------------------------------------------- 1 | -tester: biz.aQute.tester.junit-platform 2 | -runfw: org.apache.felix.framework; 3 | -runee: ${project.osgiRunee} 4 | -runtrace: false 5 | 6 | #uncomment to remote debug 7 | # -runjdb: 5005 8 | 9 | -runrequires: \ 10 | bnd.identity;id='micrometer-osgi-test-tests',\ 11 | bnd.identity;id='junit-jupiter-engine',\ 12 | bnd.identity;id='junit-platform-launcher' 13 | 14 | -runstartlevel: \ 15 | order=sortbynameversion,\ 16 | begin=-1 17 | 18 | -runproperties: \ 19 | org.osgi.framework.bsnversion=multiple 20 | -------------------------------------------------------------------------------- /micrometer-test-aspectj-ctw/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | alias(libs.plugins.aspectj) 4 | } 5 | 6 | description 'AspectJ compile-time weaving test for Micrometer aspects' 7 | 8 | if (!javaLanguageVersion.canCompileOrRun(17)) { 9 | repositories { 10 | maven { url 'https://repo.spring.io/snapshot' } 11 | } 12 | } 13 | 14 | dependencies { 15 | if (javaLanguageVersion.canCompileOrRun(17)) { 16 | aspect project(':micrometer-core') 17 | implementation libs.aspectjrt 18 | } 19 | else { 20 | // Use the latest Micrometer SNAPSHOT (built with Java 17+) 21 | // and the latest AspectJ that supports Java versions before 17 22 | aspect 'io.micrometer:micrometer-core:latest.integration' 23 | implementation 'org.aspectj:aspectjrt:1.9.20.1' 24 | } 25 | 26 | testImplementation libs.assertj 27 | } 28 | 29 | test { 30 | useJUnitPlatform() 31 | } 32 | -------------------------------------------------------------------------------- /micrometer-test-aspectj-ctw/src/main/java/io/micrometer/test/ctw/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.test.ctw; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-test-aspectj-ltw/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | description 'AspectJ load-time weaving test for Micrometer aspects' 6 | 7 | configurations { 8 | agents 9 | } 10 | 11 | dependencies { 12 | agents libs.aspectjweaver 13 | implementation project(':micrometer-core') 14 | implementation project(':micrometer-observation') 15 | 16 | testImplementation libs.assertj 17 | } 18 | 19 | test { 20 | useJUnitPlatform() 21 | jvmArgs '-javaagent:' + configurations.agents.files.find { it.name.startsWith('aspectjweaver') }, 22 | // needed for Java 16+, until upgrading to AspectJ 1.9.21.1, see https://github.com/eclipse-aspectj/aspectj/blob/master/docs/release/README-1.9.20.adoc#use-ltw-on-java-16 23 | '--add-opens=java.base/java.lang=ALL-UNNAMED' 24 | } 25 | -------------------------------------------------------------------------------- /micrometer-test-aspectj-ltw/src/main/java/io/micrometer/test/ltw/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2024 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.test.ltw; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-test/src/main/java/io/micrometer/common/util/internal/logging/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.common.util.internal.logging; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /micrometer-test/src/main/java/io/micrometer/core/instrument/binder/cache/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Support for testing cache meter binders. 19 | */ 20 | package io.micrometer.core.instrument.binder.cache; 21 | -------------------------------------------------------------------------------- /micrometer-test/src/main/java/io/micrometer/core/instrument/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument; 17 | -------------------------------------------------------------------------------- /micrometer-test/src/main/java/io/micrometer/core/instrument/step/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2023 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.instrument.step; 17 | -------------------------------------------------------------------------------- /micrometer-test/src/main/java/io/micrometer/core/ipc/http/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Support for testing {@link io.micrometer.core.ipc.http.HttpSender HttpSender classes}. 19 | */ 20 | package io.micrometer.core.ipc.http; 21 | -------------------------------------------------------------------------------- /micrometer-test/src/main/java/io/micrometer/core/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Support for testing. 19 | */ 20 | package io.micrometer.core; 21 | -------------------------------------------------------------------------------- /micrometer-test/src/main/java/io/micrometer/core/tck/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * TCK for {@link io.micrometer.core.instrument.MeterRegistry MeterRegistry classes}. 19 | */ 20 | package io.micrometer.core.tck; 21 | -------------------------------------------------------------------------------- /micrometer-test/src/main/java/io/micrometer/core/util/internal/logging/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * Support for testing internal logging. 19 | */ 20 | package io.micrometer.core.util.internal.logging; 21 | -------------------------------------------------------------------------------- /micrometer-test/src/test/java/io/micrometer/core/ipc/http/HttpUrlConnectionSenderTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.ipc.http; 17 | 18 | class HttpUrlConnectionSenderTest extends HttpSenderCompatibilityKit { 19 | 20 | @Override 21 | public HttpSender httpClient() { 22 | return new HttpUrlConnectionSender(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /micrometer-test/src/test/java/io/micrometer/core/ipc/http/OkHttpSenderTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package io.micrometer.core.ipc.http; 17 | 18 | class OkHttpSenderTest extends HttpSenderCompatibilityKit { 19 | 20 | @Override 21 | public HttpSender httpClient() { 22 | return new OkHttpSender(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /samples/micrometer-samples-core/src/main/java/io/micrometer/core/samples/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.core.samples; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /samples/micrometer-samples-core/src/main/java/io/micrometer/core/samples/utils/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 VMware, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | @NullMarked 17 | package io.micrometer.core.samples.utils; 18 | 19 | import org.jspecify.annotations.NullMarked; 20 | -------------------------------------------------------------------------------- /samples/micrometer-samples-hazelcast/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | dependencies { 6 | implementation project(':micrometer-core') 7 | implementation libs.hazelcast 8 | implementation libs.logback12 9 | } 10 | -------------------------------------------------------------------------------- /samples/micrometer-samples-javalin/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | dependencies { 6 | implementation project(":micrometer-core") 7 | implementation project(":micrometer-registry-prometheus-simpleclient") 8 | implementation project(":micrometer-jetty11") 9 | 10 | implementation libs.javalin 11 | implementation libs.logback12 12 | } 13 | 14 | java { 15 | targetCompatibility = JavaVersion.VERSION_11 16 | } 17 | 18 | compileJava { 19 | sourceCompatibility = JavaVersion.VERSION_11 20 | targetCompatibility = JavaVersion.VERSION_11 21 | options.release = 11 22 | } 23 | -------------------------------------------------------------------------------- /samples/micrometer-samples-jersey3/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | dependencies { 6 | implementation project(":micrometer-core") 7 | 8 | // Test sample project with SLFJ4 2.x / Logback; see gh-3415 9 | runtimeOnly(libs.logbackLatest) 10 | 11 | implementation libs.jersey3ContainerJdkHttp 12 | runtimeOnly libs.jersey3Hk2 13 | 14 | testImplementation libs.jersey3TestFrameworkJdkHttp 15 | testImplementation libs.junitJupiter 16 | testRuntimeOnly libs.junitPlatformLauncher 17 | testImplementation libs.assertj 18 | testImplementation libs.awaitility 19 | } 20 | -------------------------------------------------------------------------------- /samples/micrometer-samples-jooq/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | } 4 | 5 | // Latest open source jOOQ versions only support Java 21+ 6 | // skip this module when building with jdk <21 7 | if (!javaLanguageVersion.canCompileOrRun(21)) { 8 | project.tasks.configureEach { task -> task.enabled = false } 9 | } 10 | 11 | dependencies { 12 | implementation project(":micrometer-core") 13 | implementation libs.jooqLatest 14 | 15 | testImplementation platform(libs.junitBom) 16 | testImplementation libs.junitJupiter 17 | testRuntimeOnly libs.junitPlatformLauncher 18 | testImplementation libs.assertj 19 | testImplementation libs.mockitoCore5 20 | 21 | testRuntimeOnly libs.h2 22 | } 23 | 24 | java { 25 | targetCompatibility = JavaVersion.VERSION_21 26 | } 27 | 28 | compileJava { 29 | sourceCompatibility = JavaVersion.VERSION_21 30 | targetCompatibility = JavaVersion.VERSION_21 31 | options.release = 21 32 | } 33 | -------------------------------------------------------------------------------- /samples/micrometer-samples-kotlin/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | // test with the lowest version of Kotlin supported because we compile with highest version supported 3 | alias(libs.plugins.kotlin17) 4 | } 5 | 6 | tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { 7 | kotlinOptions { 8 | jvmTarget = javaTargetVersion 9 | apiVersion = "1.7" 10 | languageVersion = "1.7" 11 | } 12 | } 13 | 14 | dependencies { 15 | // libraries that have Kotlin dependencies 16 | implementation project(":micrometer-core") 17 | implementation libs.kotlinxCoroutines 18 | // force the stdlib versions to match the plugin version for this sample 19 | implementation enforcedPlatform('org.jetbrains.kotlin:kotlin-bom') 20 | implementation libs.okhttp 21 | 22 | testRuntimeOnly libs.contextPropagation 23 | 24 | testImplementation project(":micrometer-test") 25 | 26 | testImplementation platform(libs.junitBom) 27 | testRuntimeOnly platform(libs.junitBom) 28 | testImplementation libs.junitJupiter 29 | testRuntimeOnly libs.junitPlatformLauncher 30 | } 31 | -------------------------------------------------------------------------------- /scripts/.gitignore: -------------------------------------------------------------------------------- 1 | .atlas/ 2 | .ganglia/ 3 | .telegraf/ 4 | sync-to-maven-central-dont-commit.sh -------------------------------------------------------------------------------- /scripts/README.md: -------------------------------------------------------------------------------- 1 | ## Running Atlas locally 2 | 3 | Run `./atlas.sh`. To tweak the local server's settings, make modifications 4 | to `.atlas/memory.conf`. 5 | 6 | ## Running Ganglia locally 7 | 8 | Run `./ganglia.sh`. 9 | 10 | ## Running Prometheus/Grafana locally 11 | 12 | Configure a loopback Alias so Prometheus can scrape a service running on localhost 13 | and grafana can contact Prometheus (needs to be repeated after reboot): 14 | 15 | `sudo ifconfig lo0 alias 10.200.10.1/24` 16 | 17 | Start Prometheus: 18 | 19 | `docker run -p 9090:9090 -v ~/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus` 20 | 21 | Start Grafana: 22 | 23 | `docker run -i -p 3000:3000 grafana/grafana` -------------------------------------------------------------------------------- /scripts/atlas.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ATLAS_VERSION=1.5.3 4 | 5 | if [ ! -f .atlas/memory.conf ]; then 6 | echo "Downloading Atlas in-memory configuration" 7 | mkdir .atlas 8 | curl -Lo .atlas/memory.conf https://raw.githubusercontent.com/Netflix/atlas/v1.5.x/conf/memory.conf 9 | fi 10 | 11 | if [ ! -f .atlas/atlas-$ATLAS_VERSION-standalone.jar ]; then 12 | echo "Downloading Atlas $ATLAS_VERSION standalone" 13 | curl -Lo .atlas/atlas-$ATLAS_VERSION-standalone.jar https://github.com/Netflix/atlas/releases/download/v$ATLAS_VERSION/atlas-$ATLAS_VERSION-standalone.jar 14 | fi 15 | 16 | java -jar .atlas/atlas-$ATLAS_VERSION-standalone.jar .atlas/memory.conf -------------------------------------------------------------------------------- /scripts/cassandra.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | docker run --name my_cassandra -e "CASSANDRA_START_RPC=true" cassandra -------------------------------------------------------------------------------- /scripts/cpu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | htop -p $(ps ax | grep '[m]icrometer-core' | awk '{print $1}') -------------------------------------------------------------------------------- /scripts/elastic.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | docker run -d -p 9200:9200 -p 5601:5601 nshou/elasticsearch-kibana -------------------------------------------------------------------------------- /scripts/ganglia.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ ! -f .ganglia ]; then 4 | mkdir -p .ganglia/etc 5 | mkdir -p .ganglia/data 6 | fi 7 | 8 | rm -r $(pwd)/.ganglia 9 | 10 | docker run \ 11 | -v $(pwd)/.ganglia/etc:/etc/ganglia \ 12 | -v $(pwd)/.ganglia/data:/var/lib/ganglia \ 13 | -p 8089:80 \ 14 | -p 8649:8649 \ 15 | -p 8649:8649/udp \ 16 | kurthuwig/ganglia:latest -------------------------------------------------------------------------------- /scripts/go-graphite.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | docker run -d\ 4 | -p 2003-2004:2003-2004\ 5 | -p 2003:2003/udp\ 6 | -p 7002:7002\ 7 | -p 7007:7007\ 8 | bodsch/docker-go-carbon 9 | -------------------------------------------------------------------------------- /scripts/grafana-datasource.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | datasources: 4 | - name: prometheus 5 | type: prometheus 6 | access: direct 7 | url: http://10.200.10.1:9090 8 | isDefault: true 9 | -------------------------------------------------------------------------------- /scripts/grafana.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | docker run -i -p 3000:3000 \ 3 | -v $(pwd)/grafana-datasource.yml:/etc/grafana/provisioning/datasources/grafana-datasource.yml \ 4 | grafana/grafana:6.7.2 5 | -------------------------------------------------------------------------------- /scripts/graphite.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | docker run -d\ 4 | -p 8081:80\ 5 | -p 2003-2004:2003-2004\ 6 | -p 2023-2024:2023-2024\ 7 | -p 8125:8125/udp\ 8 | -p 8126:8126\ 9 | graphiteapp/graphite-statsd -------------------------------------------------------------------------------- /scripts/influx.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # assumes influxdb has been brew installed on OSX 4 | influxd -config /usr/local/etc/influxdb.conf -------------------------------------------------------------------------------- /scripts/kairosdb.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | docker run --link my_cassandra:cassandra -e "CASSANDRA_HOST_LIST=cassandra:9160" -p 8083:8083 jimtonic/kairosdb 3 | -------------------------------------------------------------------------------- /scripts/newrelic/.gitignore: -------------------------------------------------------------------------------- 1 | newrelic.yml 2 | logs/ -------------------------------------------------------------------------------- /scripts/newrelic/newrelic.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micrometer-metrics/micrometer/b2a4866940f035465704ee9d571478800fb7b9b7/scripts/newrelic/newrelic.jar -------------------------------------------------------------------------------- /scripts/prometheus.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | docker run -p 9090:9090 \ 3 | -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \ 4 | prom/prometheus:v2.17.1 5 | -------------------------------------------------------------------------------- /scripts/prometheus.yml: -------------------------------------------------------------------------------- 1 | global: 2 | scrape_interval: 5s 3 | 4 | scrape_configs: 5 | - job_name: 'prometheus' 6 | 7 | static_configs: 8 | - targets: ['localhost:9090'] 9 | 10 | - job_name: 'spring-boot2' 11 | 12 | metrics_path: '/actuator/prometheus' 13 | static_configs: 14 | - targets: ['10.200.10.1:8080'] 15 | 16 | rule_files: 17 | - prometheus_rules.yml 18 | -------------------------------------------------------------------------------- /scripts/spring-dash/grafana-dashboard.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'default' 5 | folder: 'Spring Boot' 6 | type: file 7 | options: 8 | path: /etc/grafana/dashboards 9 | -------------------------------------------------------------------------------- /scripts/spring-dash/grafana-datasource.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | datasources: 4 | - name: prometheus 5 | type: prometheus 6 | access: direct 7 | url: http://10.200.10.1:9090 8 | -------------------------------------------------------------------------------- /scripts/spring-dash/grafana.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | docker run -i -p 3000:3000 \ 3 | -v $(pwd)/grafana-datasource.yml:/etc/grafana/provisioning/datasources/grafana-datasource.yml \ 4 | -v $(pwd)/grafana-dashboard.yml:/etc/grafana/provisioning/dashboards/grafana-dashboard.yml \ 5 | -v $(pwd)/jvmgc-dashboard.json:/etc/grafana/dashboards/jvmgc.json \ 6 | -v $(pwd)/latency-dashboard.json:/etc/grafana/dashboards/latency.json \ 7 | -v $(pwd)/processor-dashboard.json:/etc/grafana/dashboards/processor.json \ 8 | grafana/grafana:5.1.0 9 | 10 | -------------------------------------------------------------------------------- /scripts/spring-dash/prometheus.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "##################################################" 3 | echo "# IMPORTANT: Once per operating system restart, you must run 'sudo ifconfig lo0 alias 10.200.10.1/24' to allow Prometheus to scrape targets on the host" 4 | echo "##################################################" 5 | docker run -p 9090:9090 \ 6 | -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \ 7 | prom/prometheus:v2.2.0 8 | -------------------------------------------------------------------------------- /scripts/spring-dash/prometheus.yml: -------------------------------------------------------------------------------- 1 | global: 2 | scrape_interval: 5s 3 | scrape_configs: 4 | - job_name: 'prometheus' 5 | static_configs: 6 | - targets: ['localhost:9090'] 7 | - job_name: 'spring-boot-2' 8 | metrics_path: '/actuator/prometheus' 9 | static_configs: 10 | - targets: ['10.200.10.1:8080'] 11 | - job_name: 'spring-boot' 12 | metrics_path: '/prometheus' 13 | static_configs: 14 | - targets: ['10.200.10.1:8080'] 15 | -------------------------------------------------------------------------------- /scripts/statsd-datadog.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ $# -eq 0 ] 4 | then 5 | echo "Supply a datadog API key as an argument to this script" 6 | fi 7 | 8 | docker run --name dd-agent \ 9 | -v /var/run/docker.sock:/var/run/docker.sock:ro \ 10 | -v /proc/:/host/proc/:ro \ 11 | -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ 12 | -e DD_API_KEY=$1 \ 13 | -e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true \ 14 | -p 8125:8125/udp \ 15 | datadog/agent:latest -------------------------------------------------------------------------------- /scripts/statsd-telegraf.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ ! -f .telegraf/tele.conf ]; then 4 | echo "Initializing the telegraf config. If you need to point to an influx instance not on localhost, modify ./telegraf/tele.conf" 5 | mkdir .telegraf 6 | telegraf --input-filter statsd --output-filter influxdb config > ./.telegraf/tele.conf 7 | fi 8 | 9 | telegraf -config ./.telegraf/tele.conf --------------------------------------------------------------------------------