iOS SwiftUI Buton Süre Ölçümü — Opentelemetry

M. Esat Ceber
1 min readMay 27, 2024

--

iOS SwiftUI için Sepet Ekle butonu için ölçüm aşağıdaki gibi yapılabilir:

  1. Projenize OpenTelemetry kütüphanesini ekleyin. Bu genellikle CocoaPods veya Swift Package Manager aracılığıyla yapılır.
dependencies: [
.package(url: "https://github.com/open-telemetry/opentelemetry-swift.git", from: "0.1.0"),
],

2. Sepet ekleme işleminizi ölçeceğiniz kod parçasını belirleyin ve işlemin başlangıç ve bitiş noktalarına OpenTelemetry ölçümlerini ekleyin.

import SwiftUI
import OpenTelemetryApi
import OpenTelemetrySdk
import OpenTelemetryExportersMetricsPrometheus
struct ContentView: View {
// Prometheus exporter'ını yapılandırın
let exporter = PrometheusExporter()

// Ölçümleri metrik sağlayıcısına göndermek için metrik yöneticisini yapılandırın
let metricManager = MeterProviderSdk(metricExporter: exporter)
var body: some View {
VStack {
Button(action: {
// OpenTelemetry'in global tracer'ını oluşturun
let tracerProvider = OpenTelemetrySDK.instance.tracerProvider
// Tracer'ı alın
let tracer = tracerProvider.get(instrumentationName: "your_instrumentation_name")
// "Sepet Ekle" işleminin başlangıç noktasında bir span başlatın
let span = tracer.spanBuilder(spanName: "Sepet Ekle").startSpan()
// Sepet ekleme işleminin gerçekleştirildiği kod buraya gelecek
SepeteEkleView()
// "Sepet Ekle" işleminin bitiş noktasında span'i kapatın
span.end()
}) {
Text("Sepete Ekle")
}
}
.onAppear {
// Metrik sağlayıcısını başlatın
metricManager.start()
}
}
}
struct SepeteEkleView: View {
var body: some View {
// Sepet ekleme işleminin gerçekleştirildiği view buraya gelecek
Text("Ürün sepete eklendi!")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

Bu kod, OpenTelemetry metriklerini Prometheus formatında sunucuya gönderecek bir exporter oluşturur ve başlatır.

--

--

M. Esat Ceber

DevOps & SRE expert, improving Large-Scale Systems' software. Excited to share insights in articles. Let's connect!