
trace4cats.opentelemetry.otlp.OpenTelemetryOtlpGrpcSpanExporter.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of trace4cats-opentelemetry-otlp-grpc-exporter_3 Show documentation
Show all versions of trace4cats-opentelemetry-otlp-grpc-exporter_3 Show documentation
trace4cats-opentelemetry-otlp-grpc-exporter
package trace4cats.opentelemetry.otlp
import cats.Foldable
import cats.effect.kernel.{Async, Resource}
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter
import org.typelevel.ci.CIString
import trace4cats.AttributeValue
import trace4cats.kernel.SpanExporter
import trace4cats.opentelemetry.common.{Endpoint, OpenTelemetryGrpcSpanExporter}
object OpenTelemetryOtlpGrpcSpanExporter {
def apply[F[_]: Async, G[_]: Foldable](
host: String = "localhost",
port: Int = 4317,
protocol: String = "http",
staticHeaders: List[(CIString, String)] = List.empty,
resourceAttributes: Map[String, AttributeValue] = Map.empty
): Resource[F, SpanExporter[F, G]] =
OpenTelemetryGrpcSpanExporter(
endpoint = Endpoint(protocol, host, port),
resourceAttributes,
makeExporter = endpoint =>
staticHeaders
.foldLeft(OtlpGrpcSpanExporter.builder().setEndpoint(endpoint.render)) { case (builder, (key, value)) =>
builder.addHeader(key.toString, value)
}
.build(),
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy