mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 15:06:56 +07:00
[opentelemetry] cleanup in telemetry.kt
1) Removed the enum with telemetry content's format 2) Split `export` method onto `sendJson` and `sendProtobuf` 3) Marked telemetry.kt as InternalApi GitOrigin-RevId: 671ab98459796f63f57dbed3818a9d10db98278f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b2a33aa906
commit
b8053e47a0
@@ -1,11 +0,0 @@
|
||||
f:com.intellij.platform.diagnostic.telemetry.exporters.OpenTelemetryRawTraceExporter
|
||||
- sf:INSTANCE:com.intellij.platform.diagnostic.telemetry.exporters.OpenTelemetryRawTraceExporter
|
||||
- f:export(java.net.URI,B[],com.intellij.platform.diagnostic.telemetry.exporters.OpenTelemetryRawTraceExporter$Protocol):V
|
||||
e:com.intellij.platform.diagnostic.telemetry.exporters.OpenTelemetryRawTraceExporter$Protocol
|
||||
- java.lang.Enum
|
||||
- sf:JSON:com.intellij.platform.diagnostic.telemetry.exporters.OpenTelemetryRawTraceExporter$Protocol
|
||||
- sf:PROTOBUF:com.intellij.platform.diagnostic.telemetry.exporters.OpenTelemetryRawTraceExporter$Protocol
|
||||
- f:getContentType():java.lang.String
|
||||
- s:getEntries():kotlin.enums.EnumEntries
|
||||
- s:valueOf(java.lang.String):com.intellij.platform.diagnostic.telemetry.exporters.OpenTelemetryRawTraceExporter$Protocol
|
||||
- s:values():com.intellij.platform.diagnostic.telemetry.exporters.OpenTelemetryRawTraceExporter$Protocol[]
|
||||
|
||||
@@ -3,29 +3,39 @@ package com.intellij.platform.diagnostic.telemetry.exporters
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import java.net.URI
|
||||
import java.net.http.HttpClient
|
||||
import java.net.http.HttpRequest
|
||||
import java.net.http.HttpResponse
|
||||
|
||||
@ApiStatus.Internal
|
||||
object OpenTelemetryRawTraceExporter {
|
||||
|
||||
private val LOG: Logger = logger<OpenTelemetryRawTraceExporter>()
|
||||
|
||||
enum class Protocol(val contentType: String) {
|
||||
PROTOBUF("application/x-protobuf"),
|
||||
JSON("application/json")
|
||||
fun sendProtobuf(targetUri: URI, binaryTraces: ByteArray) {
|
||||
send(targetUri) {
|
||||
POST(HttpRequest.BodyPublishers.ofByteArray(binaryTraces))
|
||||
header("Content-Type", "application/x-protobuf")
|
||||
}
|
||||
}
|
||||
|
||||
fun export(targetUri: URI, binaryTraces: ByteArray, protocol: Protocol) {
|
||||
fun sendJson(targetUri: URI, json: ByteArray) {
|
||||
send(targetUri) {
|
||||
POST(HttpRequest.BodyPublishers.ofByteArray(json))
|
||||
header("Content-Type", "application/json")
|
||||
}
|
||||
}
|
||||
|
||||
private fun send(targetUri: URI, customizer: HttpRequest.Builder.() -> HttpRequest.Builder) {
|
||||
try {
|
||||
val builder = HttpRequest.newBuilder().uri(targetUri)
|
||||
HttpClient.newHttpClient()
|
||||
.send(HttpRequest.newBuilder()
|
||||
.POST(HttpRequest.BodyPublishers.ofByteArray(binaryTraces))
|
||||
.uri(targetUri)
|
||||
.header("Content-Type", protocol.contentType)
|
||||
.build(),
|
||||
HttpResponse.BodyHandlers.discarding())
|
||||
.send(
|
||||
customizer(builder).build(),
|
||||
HttpResponse.BodyHandlers.discarding()
|
||||
)
|
||||
}
|
||||
catch (e: Exception) {
|
||||
LOG.warn("Unable to upload performance traces to the OTLP server ($targetUri)")
|
||||
|
||||
@@ -16,7 +16,7 @@ class GradleOpenTelemetryTraceService(private val coroutineScope: CoroutineScope
|
||||
if (binaryTraces.isEmpty()) return
|
||||
val telemetryHost = getOtlpEndPoint() ?: return
|
||||
coroutineScope.launch {
|
||||
OpenTelemetryRawTraceExporter.export(URI.create(telemetryHost), binaryTraces, OpenTelemetryRawTraceExporter.Protocol.PROTOBUF)
|
||||
OpenTelemetryRawTraceExporter.sendProtobuf(URI.create(telemetryHost), binaryTraces)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,6 @@ internal fun scheduleExportTelemetryTrace(project: Project, binaryTrace: ByteArr
|
||||
|
||||
val cs = MavenCoroutineScopeProvider.getCoroutineScope(project)
|
||||
cs.launch {
|
||||
OpenTelemetryRawTraceExporter.export(URI.create(telemetryHost), binaryTrace, OpenTelemetryRawTraceExporter.Protocol.PROTOBUF)
|
||||
OpenTelemetryRawTraceExporter.sendProtobuf(URI.create(telemetryHost), binaryTrace)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user