middleware-ios 1.0.1

middleware-ios 1.0.1

Middleware 维护。



  • Middleware

middleware-ios


Build Status GitHub release (latest SemVer) GitHub release (latest SemVer)


特点

  • 访问 OpenTelemetry API
  • 网络监控
  • 崩溃报告
  • 应用生命周期仪表化
  • 缓慢渲染检测
  • WebView 仪表化
  • 发送自定义错误和记录异常的 API
  • 自定义日志记录
  • 会话录制

设置

dependencies 下的 Package.swift 添加以下行

.package(url: "https://github.com/middleware-labs/middleware-ios", from: "1.0.1"),

初始化 Middleware iOS SDK

import SwiftUI
import MiddlewareRum
            
@main
struct YourApp: App {
    init() {
        MiddlewareRumBuilder()
            .globalAttributes(["customerId" : "123456"])
            .target("<target>")
            .serviceName("Mobile-SDK-iOS")
            .projectName("Mobile-SDK-iOS")
            .rumAccessToken("<account-key>")
            .deploymentEnvironment("PROD")
            .build()
        
    }
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

文档

配置

可以用于设置仪表化和配置您的应用程序的方法。

选项描述
.rumAccessToken(String) 设置 RUM 账户访问令牌以授权客户端向 Middleware 发送遥测数据
.target(String) 设置您想要发送遥测数据的目标 URL。例如 - 统一可观测性平台 | Middleware
.serviceName(String) 设置您的应用程序的服务名称。这可以用于按服务名称进行过滤。
.projectName(String) 设置您的应用程序的项目名称。
.deploymentEnvironment(String) 设置由仪表化生成的 spans 上的环境属性。例如 - PROD | DEV
.disableCrashReportingInstrumentation() 禁用崩溃报告。默认情况下是启用的。
.disableNetworkMonitoring() 禁用 HTTP 仪表化。默认情况下是启用的。
.disableSlowRenderingDetection() 禁用缓慢或冻结帧的渲染。默认情况下是启用的。
.slowFrameDetectionThresholdMs(Double) 设置缓慢渲染检测的默认轮询。默认值以毫秒为单位是 16.7
.frozenFrameDetectionThresholdMs(Double) 设置缓慢渲染检测的默认轮询。默认值以毫秒为单位是 700

使用 Middleware API 进行日志记录

MiddlewareRum.info("Some information")
MiddlewareRum.debug("Some information")
MiddlewareRum.trace("Some information")
MiddlewareRum.warning("Some information")
MiddlewareRum.error("Some information")
MiddlewareRum.critical("Some information")

向跟踪添加自定义错误

MiddlewareRum.addError("Unable to process I am error")

自定义异常

MiddlewareRum.addException(e: NSException(name: NSExceptionName(rawValue: "RuntimeException"), reason: "I am custom exception"))

设置屏幕名称

MiddlewareRum.setScreenName("WebView")

设置全局属性

MiddlewareRum.setGlobalAttributes(["some": "value"])

WebView 仪表化

MiddlewareRum.integrateWebViewWithBrowserRum(view: webView)

启用会话录制

默认情况下启用会话录制,要禁用请调用 .disableRecording()

    MiddlewareRumBuilder()
        .globalAttributes(["customerId" : "123456"])
        .target("<target>")
        .serviceName("Mobile-SDK-iOS")
        .projectName("Mobile-SDK-iOS")
        .rumAccessToken("<account-key>")
        .deploymentEnvironment("PROD")
        .disableRecording()
        .build()

敏感视图(视图将被模糊处理)

//SwiftUI
Text("Very important sensitive text").sensitive()

// UIKit
MiddlewareRum.addIgnoredView(view)