• Dependency the toolkit, such as using maven or gradle
   <dependency>
      <groupId>org.apache.skywalking</groupId>
      <artifactId>apm-toolkit-micrometer-registry</artifactId>
      <version>${skywalking.version}</version>
   </dependency>
  • Using org.apache.skywalking.apm.meter.micrometer.SkywalkingMeterRegistry as the registry, it could forward the MicroMeter collected metrics to OAP server.
import org.apache.skywalking.apm.meter.micrometer.SkywalkingMeterRegistry;

SkywalkingMeterRegistry registry = new SkywalkingMeterRegistry();

// If you has some counter want to rate by agent side
SkywalkingConfig config = new SkywalkingConfig(Arrays.asList("test_rate_counter"));
new SkywalkingMeterRegistry(config);

// Also you could using composite registry to combine multiple meter registry, such as collect to Skywalking and prometheus
CompositeMeterRegistry compositeRegistry = new CompositeMeterRegistry();
compositeRegistry.add(new PrometheusMeterRegistry(PrometheusConfig.DEFAULT));
compositeRegistry.add(new SkywalkingMeterRegistry());
  • Using snake case as the naming convention. Such as test.meter will be send to test_meter.

  • Using Millisecond as the time unit.

  • Adapt micrometer data convention.

Micrometer data type Transform to meter name Skywalking data type Description
Counter Counter name Counter Same with counter
Gauges Gauges name Gauges Same with gauges
Timer Timer name + “_count” Counter Execute finished count
Timer name + “_sum” Counter Total execute finished duration
Timer name + “_max” Gauges Max duration of execute finished time
Timer name + “_histogram” Histogram Histogram of execute finished duration
LongTaskTimer Timer name + “_active_count” Gauges Executing task count
Timer name + “_duration_sum” Counter All of executing task sum duration
Timer name + “_max” Counter Current longest running task execute duration
Function Timer Timer name + “_count” Gauges Execute finished timer count
Timer name + “_sum” Gauges Execute finished timer total duration
Function Counter Counter name Counter Custom counter value
Distribution summary Summary name + “_count” Counter Total record count
Summary name + “_sum” Counter Total record amount sum
Summary name + “_max” Gauges Max record amount
Summary name + “_histogram” Gauges Histogram of the amount
  • Not Adapt data convention.
Micrometer data type Data type
LongTaskTimer Histogram