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

org.apache.rocketmq.shaded.io.opentelemetry.sdk.logs.export.LogExporter Maven / Gradle / Ivy

There is a newer version: 5.0.7
Show newest version
/*
 * Copyright The OpenTelemetry Authors
 * SPDX-License-Identifier: Apache-2.0
 */

package org.apache.rocketmq.shaded.io.opentelemetry.sdk.logs.export;

import org.apache.rocketmq.shaded.io.opentelemetry.sdk.common.CompletableResultCode;
import org.apache.rocketmq.shaded.io.opentelemetry.sdk.logs.LogProcessor;
import org.apache.rocketmq.shaded.io.opentelemetry.sdk.logs.SdkLogEmitterProvider;
import org.apache.rocketmq.shaded.io.opentelemetry.sdk.logs.data.LogData;
import java.io.Closeable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.TimeUnit;

/**
 * An exporter is responsible for taking a collection of {@link LogData}s and transmitting them to
 * their ultimate destination.
 */
public interface LogExporter extends Closeable {

  /**
   * Returns a {@link LogExporter} which delegates all exports to the {@code exporters} in order.
   *
   * 

Can be used to export to multiple backends using the same {@link LogProcessor} like a {@link * SimpleLogProcessor} or a {@link BatchLogProcessor}. */ static LogExporter composite(LogExporter... exporters) { return composite(Arrays.asList(exporters)); } /** * Returns a {@link LogExporter} which delegates all exports to the {@code exporters} in order. * *

Can be used to export to multiple backends using the same {@link LogProcessor} like a {@link * SimpleLogProcessor} or a {@link BatchLogProcessor}. */ static LogExporter composite(Iterable exporters) { List exportersList = new ArrayList<>(); for (LogExporter exporter : exporters) { exportersList.add(exporter); } if (exportersList.isEmpty()) { return NoopLogExporter.getInstance(); } if (exportersList.size() == 1) { return exportersList.get(0); } return MultiLogExporter.create(exportersList); } /** * Exports the collections of given {@link LogData}. * * @param logs the collection of {@link LogData} to be exported * @return the result of the export, which is often an asynchronous operation */ CompletableResultCode export(Collection logs); /** * Exports the collection of {@link LogData} that have not yet been exported. * * @return the result of the flush, which is often an asynchronous operation */ CompletableResultCode flush(); /** * Shutdown the log exporter. Called when {@link SdkLogEmitterProvider#shutdown()} is called when * this exporter is registered to the provider via {@link BatchLogProcessor} or {@link * SimpleLogProcessor}. * * @return a {@link CompletableResultCode} which is completed when shutdown completes */ CompletableResultCode shutdown(); /** Closes this {@link LogExporter}, releasing any resources. */ @Override default void close() { shutdown().join(10, TimeUnit.SECONDS); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy