All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.opentelemetry.exporter.internal.otlp.metrics.MetricsRequestMarshaler Maven / Gradle / Ivy

The newest version!
/*
 * Copyright The OpenTelemetry Authors
 * SPDX-License-Identifier: Apache-2.0
 */

package io.opentelemetry.exporter.internal.otlp.metrics;

import io.opentelemetry.exporter.internal.marshal.Marshaler;
import io.opentelemetry.exporter.internal.marshal.MarshalerUtil;
import io.opentelemetry.exporter.internal.marshal.MarshalerWithSize;
import io.opentelemetry.exporter.internal.marshal.Serializer;
import io.opentelemetry.proto.collector.metrics.v1.internal.ExportMetricsServiceRequest;
import io.opentelemetry.sdk.metrics.data.MetricData;
import java.io.IOException;
import java.util.Collection;

/**
 * {@link Marshaler} to convert SDK {@link MetricData} to OTLP ExportMetricsServiceRequest.
 *
 * 

This class is internal and is hence not for public use. Its APIs are unstable and can change * at any time. */ public final class MetricsRequestMarshaler extends MarshalerWithSize { private final ResourceMetricsMarshaler[] resourceMetricsMarshalers; /** * Returns a {@link MetricsRequestMarshaler} that can be used to convert the provided {@link * MetricData} into a serialized OTLP ExportMetricsServiceRequest. */ public static MetricsRequestMarshaler create(Collection metricDataList) { return new MetricsRequestMarshaler(ResourceMetricsMarshaler.create(metricDataList)); } private MetricsRequestMarshaler(ResourceMetricsMarshaler[] resourceMetricsMarshalers) { super(calculateSize(resourceMetricsMarshalers)); this.resourceMetricsMarshalers = resourceMetricsMarshalers; } @Override public void writeTo(Serializer output) throws IOException { output.serializeRepeatedMessage( ExportMetricsServiceRequest.RESOURCE_METRICS, resourceMetricsMarshalers); } private static int calculateSize(ResourceMetricsMarshaler[] resourceMetricsMarshalers) { int size = 0; size += MarshalerUtil.sizeRepeatedMessage( ExportMetricsServiceRequest.RESOURCE_METRICS, resourceMetricsMarshalers); return size; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy