diff --git a/en/rum/sdk/android/advanced-config.mdx b/en/rum/sdk/android/advanced-config.mdx index 18a8ef1..0ed07ab 100644 --- a/en/rum/sdk/android/advanced-config.mdx +++ b/en/rum/sdk/android/advanced-config.mdx @@ -3,14 +3,7 @@ title: "Advanced Configuration" description: "Configure advanced features of Android RUM SDK, including custom events, user tracking, sampling control, and data security" --- - -**About Dependencies and Package Names** - -Flashduty Android SDK is fully compatible with the Datadog open-source protocol. In `build.gradle`, use `cloud.flashcat` group for dependencies, but in Kotlin/Java code, import classes from the `com.datadog.android` package. You can seamlessly leverage Datadog ecosystem documentation, examples, and best practices while enjoying Flashduty platform services. - - - -Flashduty Android RUM SDK provides rich advanced configuration options to help you customize data collection and context information based on business needs. +Android RUM SDK provides rich advanced configuration options to help you customize data collection and context information based on business needs. **Supported Configuration Scenarios:** @@ -30,28 +23,28 @@ When using `ActivityViewTrackingStrategy` or `FragmentViewTrackingStrategy`, the ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum fun onResume() { - GlobalRumMonitor.get().startView(viewKey, viewName, attributes) + GlobalRum.get().startView(viewKey, viewName, attributes) } fun onPause() { - GlobalRumMonitor.get().stopView(viewKey, attributes) + GlobalRum.get().stopView(viewKey, attributes) } ``` ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; public void onResume() { - GlobalRumMonitor.get().startView(viewKey, viewName, attributes); + GlobalRum.get().startView(viewKey, viewName, attributes); } public void onPause() { - GlobalRumMonitor.get().stopView(viewKey, attributes); + GlobalRum.get().stopView(viewKey, attributes); } ``` @@ -71,11 +64,11 @@ In addition to auto-tracked user interactions, you can track specific custom use ```kotlin -import com.datadog.android.rum.GlobalRumMonitor -import com.datadog.android.rum.RumActionType +import cloud.flashcat.android.rum.GlobalRum +import cloud.flashcat.android.rum.RumActionType fun onUserInteraction() { - GlobalRumMonitor.get().addAction( + GlobalRum.get().addAction( RumActionType.TAP, name, attributes @@ -86,11 +79,11 @@ fun onUserInteraction() { ```java -import com.datadog.android.rum.GlobalRumMonitor; -import com.datadog.android.rum.RumActionType; +import cloud.flashcat.android.rum.GlobalRum; +import cloud.flashcat.android.rum.RumActionType; public void onUserInteraction() { - GlobalRumMonitor.get().addAction( + GlobalRum.get().addAction( RumActionType.TAP, name, attributes @@ -117,22 +110,22 @@ In addition to auto-tracked resources, you can manually track specific custom re ```kotlin -import com.datadog.android.rum.GlobalRumMonitor -import com.datadog.android.rum.RumResourceKind +import cloud.flashcat.android.rum.GlobalRum +import cloud.flashcat.android.rum.RumResourceKind fun loadResource() { - GlobalRumMonitor.get().startResource(resourceKey, method, url, attributes) + GlobalRum.get().startResource(resourceKey, method, url, attributes) } fun resourceLoadSuccess() { - GlobalRumMonitor.get().stopResource( + GlobalRum.get().stopResource( resourceKey, statusCode, size, RumResourceKind.NATIVE, attributes ) } fun resourceLoadError() { - GlobalRumMonitor.get().stopResourceWithError( + GlobalRum.get().stopResourceWithError( resourceKey, statusCode, message, source, throwable ) } @@ -141,22 +134,22 @@ fun resourceLoadError() { ```java -import com.datadog.android.rum.GlobalRumMonitor; -import com.datadog.android.rum.RumResourceKind; +import cloud.flashcat.android.rum.GlobalRum; +import cloud.flashcat.android.rum.RumResourceKind; public void loadResource() { - GlobalRumMonitor.get().startResource(resourceKey, method, url, attributes); + GlobalRum.get().startResource(resourceKey, method, url, attributes); } public void resourceLoadSuccess() { - GlobalRumMonitor.get().stopResource( + GlobalRum.get().stopResource( resourceKey, statusCode, size, RumResourceKind.NATIVE, attributes ); } public void resourceLoadError() { - GlobalRumMonitor.get().stopResourceWithError( + GlobalRum.get().stopResourceWithError( resourceKey, statusCode, message, source, throwable ); } @@ -187,9 +180,9 @@ To record specific errors, notify the RUM SDK when an exception occurs: ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum -GlobalRumMonitor.get().addError( +GlobalRum.get().addError( message, source, throwable, @@ -200,9 +193,9 @@ GlobalRumMonitor.get().addError( ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; -GlobalRumMonitor.get().addError( +GlobalRum.get().addError( message, source, throwable, @@ -223,20 +216,20 @@ In addition to RUM SDK's default performance metrics, you can use the `addTiming ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum fun onHeroImageLoaded() { - GlobalRumMonitor.get().addTiming("hero_image") + GlobalRum.get().addTiming("hero_image") } ``` ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; public void onHeroImageLoaded() { - GlobalRumMonitor.get().addTiming("hero_image"); + GlobalRum.get().addTiming("hero_image"); } ``` @@ -253,9 +246,9 @@ The RUM SDK automatically tracks user attributes. You can also add additional cu ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum -GlobalRumMonitor.get().setUserInfo( +GlobalRum.get().setUserInfo( id = "1234", name = "John Doe", email = "john@doe.com", @@ -269,7 +262,7 @@ GlobalRumMonitor.get().setUserInfo( ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; import java.util.HashMap; import java.util.Map; @@ -277,7 +270,7 @@ Map extraInfo = new HashMap<>(); extraInfo.put("plan", "premium"); extraInfo.put("group", "vip"); -GlobalRumMonitor.get().setUserInfo( +GlobalRum.get().setUserInfo( "1234", "John Doe", "john@doe.com", @@ -300,17 +293,17 @@ Use `clearAllData` to clear all unsent data currently stored in the SDK: ```kotlin -import com.datadog.android.Datadog +import cloud.flashcat.android.Flashcat -Datadog.clearAllData() +Flashcat.clearAllData() ``` ```java -import com.datadog.android.Datadog; +import cloud.flashcat.android.Flashcat; -Datadog.clearAllData(); +Flashcat.clearAllData(); ``` @@ -335,18 +328,18 @@ To comply with privacy regulations like GDPR and CCPA, you can set user tracking ```kotlin // Set consent state during initialization -Datadog.initialize(this, configuration, TrackingConsent.PENDING) +Flashcat.initialize(this, configuration, TrackingConsent.PENDING) // Update consent state when user grants permission -Datadog.setTrackingConsent(TrackingConsent.GRANTED) +Flashcat.setTrackingConsent(TrackingConsent.GRANTED) // Update consent state when user revokes permission -Datadog.setTrackingConsent(TrackingConsent.NOT_GRANTED) +Flashcat.setTrackingConsent(TrackingConsent.NOT_GRANTED) ``` | State | Behavior | |-------|----------| -| `GRANTED` | Start collecting data and send to Flashduty | +| `GRANTED` | Start collecting data and send to Flashcat | | `NOT_GRANTED` | Do not collect any data | | `PENDING` | Collect but do not send, wait for user decision | @@ -357,25 +350,25 @@ Add global context attributes that will be attached to all RUM events: ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum // Add attribute -GlobalRumMonitor.get().addAttribute("user_type", "premium") +GlobalRum.get().addAttribute("user_type", "premium") // Remove attribute -GlobalRumMonitor.get().removeAttribute("user_type") +GlobalRum.get().removeAttribute("user_type") ``` ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; // Add attribute -GlobalRumMonitor.get().addAttribute("user_type", "premium"); +GlobalRum.get().addAttribute("user_type", "premium"); // Remove attribute -GlobalRumMonitor.get().removeAttribute("user_type"); +GlobalRum.get().removeAttribute("user_type"); ``` diff --git a/en/rum/sdk/android/sdk-integration.mdx b/en/rum/sdk/android/sdk-integration.mdx index 7be2481..e812dd7 100644 --- a/en/rum/sdk/android/sdk-integration.mdx +++ b/en/rum/sdk/android/sdk-integration.mdx @@ -4,34 +4,21 @@ description: "Quickly integrate Android RUM SDK for real-time monitoring of app --- - Flashduty Android RUM SDK supports **Android 6.0 (API level 23)** and above. - By integrating the SDK, you can monitor your Android app's performance, - errors, and user behavior in real-time. +Flashduty Android RUM SDK supports **Android 6.0 (API level 23)** and above. By integrating the SDK, you can monitor your Android app's performance, errors, and user behavior in real-time. - -**About Dependencies and Package Names** - -Flashduty Android SDK is fully compatible with the Datadog open-source protocol. In `build.gradle`, use `cloud.flashcat` group for dependencies, but in Kotlin/Java code, import classes from the `com.datadog.android` package. You can seamlessly leverage Datadog ecosystem documentation, examples, and best practices while enjoying Flashduty platform services. - - - ## Integration Steps - Add SDK dependencies in your app module's `build.gradle` file: + Add Flashcat SDK dependencies in your app module's `build.gradle` file: ```groovy build.gradle dependencies { - implementation "cloud.flashcat:dd-sdk-android-core:" - implementation "cloud.flashcat:dd-sdk-android-rum:" + implementation "cloud.flashcat:fc-sdk-android-core:0.1.0" + implementation "cloud.flashcat:fc-sdk-android-rum:0.1.0" } ``` - - -Check the [SDK Release Page](https://central.sonatype.com/namespace/cloud.flashcat) for the latest version. Replace `` with the actual version number (e.g., `0.3.0`). - @@ -42,15 +29,19 @@ Check the [SDK Release Page](https://central.sonatype.com/namespace/cloud.flashc - **Application ID** - Application unique identifier - **Client Token** - Client access token + + RUM Application Management page showing Application ID and Client Token locations + Initialize Flashcat SDK in your `Application` class's `onCreate()` method: ```kotlin Application.kt -import com.datadog.android.Datadog -import com.datadog.android.core.configuration.Configuration -import com.datadog.android.privacy.TrackingConsent +import cloud.flashcat.android.Flashcat +import cloud.flashcat.android.FlashcatSite +import cloud.flashcat.android.core.configuration.Configuration +import cloud.flashcat.android.privacy.TrackingConsent class SampleApplication : Application() { override fun onCreate() { @@ -66,7 +57,7 @@ class SampleApplication : Application() { variant = appVariantName ).build() - Datadog.initialize(this, configuration, TrackingConsent.GRANTED) + Flashcat.initialize(this, configuration, TrackingConsent.GRANTED) } } ``` @@ -83,16 +74,16 @@ class SampleApplication : Application() { Configure and enable Android SDK's RUM features: ```kotlin Application.kt -import com.datadog.android.rum.Rum -import com.datadog.android.rum.RumConfiguration -import com.datadog.android.rum.tracking.ActivityViewTrackingStrategy +import cloud.flashcat.android.rum.Rum +import cloud.flashcat.android.rum.RumConfiguration +import cloud.flashcat.android.rum.tracking.ActivityViewTrackingStrategy val rumConfig = RumConfiguration.Builder(applicationId) .trackUserInteractions() .trackLongTasks(durationThreshold) .useViewTrackingStrategy(ActivityViewTrackingStrategy(true)) .build() - + Rum.enable(rumConfig) ``` @@ -111,21 +102,19 @@ The SDK will automatically start collecting the following data: ```groovy build.gradle dependencies { - implementation "cloud.flashcat:dd-sdk-android-okhttp:" + implementation "cloud.flashcat:fc-sdk-android-okhttp:0.1.0" } ``` - - Check the [SDK Release - Page](https://central.sonatype.com/namespace/cloud.flashcat) for the latest - version. - - **Configure interceptor:** + + currently using the community Datadog http interceptor + + ```kotlin -import com.datadog.android.okhttp.DatadogInterceptor -import com.datadog.android.trace.TracingHeaderType +import cloud.flashcat.android.okhttp.DatadogInterceptor +import cloud.flashcat.android.trace.TracingHeaderType val tracedHostsWithHeaderType = mapOf( "example.com" to setOf( @@ -144,16 +133,13 @@ val okHttpClient = OkHttpClient.Builder() ``` - With `DatadogInterceptor`, every request handled by OkHttpClient is - automatically recorded as a resource, with relevant information (URL, method, - status code, error) automatically populated. +With `DatadogInterceptor`, every request handled by OkHttpClient is automatically recorded as a resource, with relevant information (URL, method, status code, error) automatically populated. - - Only network requests initiated while a view is active are tracked - To - track requests when app is in background, see [Track Background - Events](#track-background-events) - If using multiple interceptors, add - `DatadogInterceptor` as the first interceptor +- Only network requests initiated while a view is active are tracked +- To track requests when app is in background, see [Track Background Events](#track-background-events) +- If using multiple interceptors, add `DatadogInterceptor` as the first interceptor **Track Network Redirects or Retries:** @@ -167,8 +153,7 @@ val okHttpClient = OkHttpClient.Builder() ``` - You can also add an `EventListener` to `OkHttpClient` to automatically track - resource timing for third-party providers and network requests. +You can also add an `EventListener` to `OkHttpClient` to automatically track resource timing for third-party providers and network requests. **Filter Specific Errors:** @@ -186,7 +171,6 @@ val rumConfig = RumConfiguration.Builder(applicationId) } .build() ``` - @@ -203,8 +187,7 @@ val rumConfig = RumConfiguration.Builder(applicationId) ``` - Tracking background events may generate additional sessions, affecting - billing. If you have questions, please contact Flashcat support team. +Tracking background events may generate additional sessions, affecting billing. If you have questions, please contact Flashcat support team. ### Offline Data Handling @@ -212,15 +195,14 @@ val rumConfig = RumConfiguration.Builder(applicationId) The Android SDK ensures data availability when the user's device is offline: - **Data Persistence Mechanism:** - Events are stored locally in batches when - network signal is weak or device battery is low - Automatically uploaded when - network recovers, ensuring no data loss - Old data is automatically cleaned up - to avoid excessive disk usage +**Data Persistence Mechanism:** +- Events are stored locally in batches when network signal is weak or device battery is low +- Automatically uploaded when network recovers, ensuring no data loss +- Old data is automatically cleaned up to avoid excessive disk usage - Even if users use the app while offline, data is retained and uploaded when - network recovers, ensuring no monitoring data is lost. +Even if users use the app while offline, data is retained and uploaded when network recovers, ensuring no monitoring data is lost. ### Track Local Resource Access @@ -250,13 +232,9 @@ If your Android app contains WebViews, you can enable WebView tracking to monito ```groovy build.gradle dependencies { - implementation "cloud.flashcat:dd-sdk-android-webview:" + implementation "cloud.flashcat:fc-sdk-android-webview:0.1.0" } ``` - - -Check the [SDK Release Page](https://central.sonatype.com/namespace/cloud.flashcat) for the latest version. - @@ -264,7 +242,7 @@ Check the [SDK Release Page](https://central.sonatype.com/namespace/cloud.flashc Enable WebView tracking in your Activity or Fragment: ```kotlin -import com.datadog.android.webview.WebViewTracking +import cloud.flashcat.android.webview.WebViewTracking // Enable tracking for specified WebView WebViewTracking.enable(webView, listOf("example.com", "*.example.com")) @@ -279,7 +257,7 @@ WebViewTracking.enable(webView, listOf("example.com", "*.example.com")) - Web pages in WebView can now be correlated with native app RUM data. +Web pages in WebView can now be correlated with native app RUM data. ## Verify Integration @@ -292,10 +270,10 @@ After integration, verify that the integration is successful: - Perform the following actions in the app to verify data collection: - Open - different pages in the app to verify page view events - Perform user actions - (clicks, swipes, etc.) to verify interaction events - Trigger network requests - to verify resource loading events + Perform the following actions in the app to verify data collection: + - Open different pages in the app to verify page view events + - Perform user actions (clicks, swipes, etc.) to verify interaction events + - Trigger network requests to verify resource loading events @@ -312,9 +290,9 @@ After integration, verify that the integration is successful: If your app has code obfuscation enabled (ProGuard/R8), add the following rules to your `proguard-rules.pro` file: ```proguard proguard-rules.pro -# Flashduty SDK (Datadog compatible) --keep class com.datadog.android.** { *; } --dontwarn com.datadog.android.** +# Flashcat SDK +-keep class cloud.flashcat.android.** { *; } +-dontwarn cloud.flashcat.android.** ``` ## Next Steps @@ -324,11 +302,7 @@ If your app has code obfuscation enabled (ProGuard/R8), add the following rules Configure advanced SDK features like custom sampling, user identification, global context, etc. - + Learn about data types and data structures collected by the SDK diff --git a/en/rum/sdk/ios/advanced-config.mdx b/en/rum/sdk/ios/advanced-config.mdx index 6d94ee9..f9337d1 100644 --- a/en/rum/sdk/ios/advanced-config.mdx +++ b/en/rum/sdk/ios/advanced-config.mdx @@ -3,14 +3,7 @@ title: "Advanced Configuration" description: "Configure advanced features of iOS RUM SDK, including custom events, user tracking, sampling control, and data security" --- - -**About Dependencies and Package Names** - -Flashduty iOS SDK is fully compatible with the Datadog open-source protocol. When adding dependencies via Swift Package Manager or CocoaPods, use names like `FlashcatCore` and `FlashcatRUM`, but in code, import modules like `DatadogCore` and `DatadogRUM`. You can seamlessly leverage Datadog ecosystem documentation, examples, and best practices while enjoying Flashduty platform services. - - - -Flashduty iOS RUM SDK provides rich advanced configuration options to help you customize data collection and context information based on business needs. +iOS RUM SDK provides rich advanced configuration options to help you customize data collection and context information based on business needs. **Supported Configuration Scenarios:** @@ -30,7 +23,7 @@ In addition to auto-tracked views, you can manually track custom views: ```swift -import DatadogRUM +import FlashcatRUM // Start tracking view RUMMonitor.shared().startView( @@ -49,7 +42,7 @@ RUMMonitor.shared().stopView( ```objectivec -@import DatadogRUM; +@import FlashcatRUM; // Start tracking view [[RUMMonitor shared] startViewWithKey:@"view-key" @@ -77,7 +70,7 @@ Track specific custom user actions: ```swift -import DatadogRUM +import FlashcatRUM RUMMonitor.shared().addAction( type: .tap, @@ -89,7 +82,7 @@ RUMMonitor.shared().addAction( ```objectivec -@import DatadogRUM; +@import FlashcatRUM; [[RUMMonitor shared] addActionWithType:RUMActionTypeTap name:@"Button Tapped" @@ -105,7 +98,7 @@ Manually track specific custom resources: ```swift -import DatadogRUM +import FlashcatRUM // Start resource tracking RUMMonitor.shared().startResource( @@ -143,7 +136,7 @@ Record specific errors: ```swift -import DatadogRUM +import FlashcatRUM RUMMonitor.shared().addError( message: "Network request failed", @@ -159,7 +152,7 @@ RUMMonitor.shared().addError( ```objectivec -@import DatadogRUM; +@import FlashcatRUM; [[RUMMonitor shared] addErrorWithMessage:@"Network request failed" type:@"NetworkError" @@ -179,9 +172,9 @@ Set user information for the current session: ```swift -import DatadogCore +import FlashcatCore -Datadog.setUserInfo( +Flashcat.setUserInfo( id: "user-123", name: "John Doe", email: "john.doe@example.com", @@ -195,15 +188,15 @@ Datadog.setUserInfo( ```objectivec -@import DatadogCore; - -[DDDatadog setUserInfoWithId:@"user-123" - name:@"John Doe" - email:@"john.doe@example.com" - extraInfo:@{ - @"plan": @"premium", - @"signup_date": @"2024-01-15" - }]; +@import FlashcatCore; + +[Flashcat setUserInfoWithId:@"user-123" + name:@"John Doe" + email:@"john.doe@example.com" + extraInfo:@{ + @"plan": @"premium", + @"signup_date": @"2024-01-15" + }]; ``` @@ -221,17 +214,17 @@ Clear all unsent data currently stored in the SDK: ```swift -import DatadogCore +import FlashcatCore -Datadog.clearAllData() +Flashcat.clearAllData() ``` ```objectivec -@import DatadogCore; +@import FlashcatCore; -[DDDatadog clearAllData]; +[Flashcat clearAllData]; ``` @@ -259,21 +252,21 @@ To comply with privacy regulations like GDPR and CCPA, you can set user tracking ```swift // Set consent state during initialization -Datadog.initialize( +Flashcat.initialize( with: configuration, trackingConsent: .pending ) // Update consent state when user grants permission -Datadog.set(trackingConsent: .granted) +Flashcat.set(trackingConsent: .granted) // Update consent state when user revokes permission -Datadog.set(trackingConsent: .notGranted) +Flashcat.set(trackingConsent: .notGranted) ``` | State | Behavior | |-------|----------| -| `.granted` | Start collecting data and send to Flashduty | +| `.granted` | Start collecting data and send to Flashcat | | `.notGranted` | Do not collect any data | | `.pending` | Collect but do not send, wait for user decision | @@ -284,7 +277,7 @@ Add global context attributes that will be attached to all RUM events: ```swift -import DatadogRUM +import FlashcatRUM // Add attribute RUMMonitor.shared().addAttribute(forKey: "user_type", value: "premium") @@ -296,7 +289,7 @@ RUMMonitor.shared().removeAttribute(forKey: "user_type") ```objectivec -@import DatadogRUM; +@import FlashcatRUM; // Add attribute [[RUMMonitor shared] addAttributeForKey:@"user_type" value:@"premium"]; diff --git a/en/rum/sdk/ios/compatible.mdx b/en/rum/sdk/ios/compatible.mdx index fcc3749..c6d1dde 100644 --- a/en/rum/sdk/ios/compatible.mdx +++ b/en/rum/sdk/ios/compatible.mdx @@ -9,7 +9,7 @@ This document describes the operating system versions, development platforms, UI ## System Requirements -Flashduty RUM iOS SDK supports the following operating system versions: +Flashcat RUM iOS SDK supports the following operating system versions: | Platform | Support Status | Min Version | Notes | |----------|----------------|-------------|-------| @@ -37,7 +37,7 @@ The SDK is built with the latest version of Xcode but is always backward compati | Tool | Support Status | Recommendation | |------|----------------|----------------| | **Swift Package Manager** | ✅ Fully supported | Recommended ⭐ | -| **CocoaPods** | ✅ Fully supported | Supported | +| CocoaPods | 🚧 Planned | Coming soon | | Carthage | 🚧 Planned | Coming soon | ### Programming Languages @@ -81,7 +81,7 @@ URLSession is recommended for fully automatic network request tracking. | Type | Support Status | Notes | |------|----------------|-------| -| **WKWebView** | ✅ Fully supported | Requires integrating `FlashcatWebViewTracking` module | +| **WKWebView** | ✅ Fully supported | Requires integrating `FlashcatWebView` module | | **UIWebView** | ❌ Not supported | Deprecated by Apple | @@ -93,14 +93,14 @@ UIWebView has been deprecated by Apple, please use WKWebView. ## SDK Modules -Flashduty iOS SDK consists of the following modules: +Flashcat iOS SDK consists of the following modules: -| Dependency Name (SPM/CocoaPods) | Import Name | Description | Required | -|---------------------------------|-------------|-------------|----------| -| **FlashcatCore** | `DatadogCore` | Core SDK, provides basic functionality | ✅ Required | -| **FlashcatRUM** | `DatadogRUM` | RUM data collection and reporting | ✅ Required | -| **FlashcatWebViewTracking** | `DatadogWebViewTracking` | WebView integration support | Optional | -| **FlashcatCrashReporting** | `DatadogCrashReporting` | Crash reporting | Recommended | +| Module Name | Description | Platform Support | Required | +|-------------|-------------|------------------|----------| +| **FlashcatCore** | Core SDK, provides basic functionality | iOS, iPadOS, tvOS, macOS | ✅ Required | +| **FlashcatRUM** | RUM data collection and reporting | iOS, iPadOS, tvOS | ✅ Required | +| **FlashcatWebView** | WebView integration support | iOS, iPadOS | Optional | +| **FlashcatCrash** | Crash reporting (integrates PLCrashReporter) | iOS, iPadOS, tvOS | Recommended | Selectively integrate modules based on your needs. Only `FlashcatCore` and `FlashcatRUM` are required. @@ -109,7 +109,7 @@ Selectively integrate modules based on your needs. Only `FlashcatCore` and `Flas ## Third-party Dependencies -Flashduty iOS SDK depends on the following third-party libraries: +Flashcat iOS SDK depends on the following third-party libraries: | Library Name | Version | Purpose | @@ -166,7 +166,7 @@ If your app primarily targets macOS Catalyst, recommend verifying all features i ## Performance Impact -Flashduty iOS SDK is designed to be lightweight with minimal impact on app performance: +Flashcat iOS SDK is designed to be lightweight with minimal impact on app performance: | Metric | Impact | |--------|--------| diff --git a/en/rum/sdk/ios/performance-impact.mdx b/en/rum/sdk/ios/performance-impact.mdx index 06f443d..6b22a22 100644 --- a/en/rum/sdk/ios/performance-impact.mdx +++ b/en/rum/sdk/ios/performance-impact.mdx @@ -1,12 +1,12 @@ --- title: "Performance Impact" -description: "Learn about the performance impact of the Flashduty iOS RUM SDK on CPU, memory, launch time, package size, and network usage, along with optimization recommendations." +description: "Learn about the performance impact of the Flashcat iOS RUM SDK on CPU, memory, launch time, package size, and network usage, along with optimization recommendations." keywords: ["iOS SDK", "performance impact", "RUM", "performance optimization", "memory usage", "CPU"] --- ## Overview -When integrating any SDK into an iOS application, understanding its performance impact is crucial for maintaining a good user experience. The Flashduty RUM SDK is designed with the goal of minimizing performance overhead and provides transparent measurement data to help you evaluate whether the SDK meets your application's performance budget. +When integrating any SDK into an iOS application, understanding its performance impact is crucial for maintaining a good user experience. The Flashcat RUM SDK is designed with the goal of minimizing performance overhead and provides transparent measurement data to help you evaluate whether the SDK meets your application's performance budget. The SDK uses asynchronous processing mechanisms, with all data processing performed in background queues without blocking the main thread. @@ -63,12 +63,12 @@ It is recommended to initialize the SDK as early as possible in `AppDelegate`'s The SDK uses a modular design, allowing you to include only the necessary functional modules: -| Dependency Name | Import Name | Description | -| --- | --- | --- | -| `FlashcatCore` | `DatadogCore` | Core functionality (required) | -| `FlashcatRUM` | `DatadogRUM` | RUM monitoring | -| `FlashcatTrace` | `DatadogTrace` | Distributed tracing | -| `FlashcatWebViewTracking` | `DatadogWebViewTracking` | WebView tracking | +| Module | Description | +| --- | --- | +| `FlashcatCore` | Core functionality (required) | +| `FlashcatRUM` | RUM monitoring | +| `FlashcatTrace` | Distributed tracing | +| `FlashcatWebView` | WebView tracking | Including only the necessary modules can minimize the impact on package size. diff --git a/en/rum/sdk/ios/sdk-integration.mdx b/en/rum/sdk/ios/sdk-integration.mdx index eb65ccf..ea4d0ef 100644 --- a/en/rum/sdk/ios/sdk-integration.mdx +++ b/en/rum/sdk/ios/sdk-integration.mdx @@ -4,73 +4,26 @@ description: "Quickly integrate iOS RUM SDK for real-time monitoring of app perf --- -Flashduty iOS RUM SDK supports **iOS 12.0, iPadOS 12.0, tvOS 12.0** and above. By integrating the SDK, you can monitor your iOS app's performance, errors, and user behavior in real-time. +iOS RUM SDK supports **iOS 12.0, iPadOS 12.0, tvOS 12.0** and above. By integrating the SDK, you can monitor your iOS app's performance, errors, and user behavior in real-time. - -**About Dependencies and Package Names** - -Flashduty iOS SDK is fully compatible with the Datadog open-source protocol. When adding dependencies via Swift Package Manager or CocoaPods, use names like `FlashcatCore` and `FlashcatRUM`, but in code, import modules like `DatadogCore` and `DatadogRUM`. You can seamlessly leverage Datadog ecosystem documentation, examples, and best practices while enjoying Flashduty platform services. - - - ## Integration Steps -Flashduty iOS SDK supports Swift Package Manager and CocoaPods: - - - +Flashcat iOS SDK is installed via Swift Package Manager: 1. In Xcode, open your project and select **File > Add Package Dependencies** - -2. Enter the Flashduty SDK Git repository URL: +2. Enter the Flashcat SDK Git repository URL in the search bar: ``` - https://github.com/flashcatcloud/fc-sdk-ios + https://github.com/flashcat-cloud/fc-ios-sdk ``` - -3. Select version rule: - - **Recommended**: Select **Up to Next Major Version** and enter the latest version number (e.g., `0.3.0`) - - This allows bug fixes and minor updates while maintaining compatibility - -4. Click **Add Package** and wait for Xcode to download dependencies - -5. In the **Choose Package Products** window, select modules to add to your Target: - - `FlashcatCore` - Core SDK (required) - - `FlashcatRUM` - RUM feature module (required) - - `FlashcatWebViewTracking` - WebView tracking (optional) - - `FlashcatCrashReporting` - Crash reporting (recommended) - -6. Ensure each module is linked to the correct Target, click **Add Package** to complete - - - - - -Add the following dependencies to your `Podfile`: - -```ruby Podfile -pod 'FlashcatCore', '~> 0.3.0' # Core SDK (required) -pod 'FlashcatRUM', '~> 0.3.0' # RUM feature (required) - -# Optional modules -pod 'FlashcatWebViewTracking', '~> 0.3.0' # WebView tracking -pod 'FlashcatCrashReporting', '~> 0.3.0' # Crash reporting -``` - -Then run `pod install` and open your project using the `.xcworkspace` file. - - - - - -**Get Latest Version** - -Check the [SDK Release Page](https://github.com/flashcatcloud/fc-sdk-ios/releases) for the latest stable version. Pin to a specific version to avoid unexpected updates. - - +3. Select the desired version or branch (default release branch is public) +4. Select your app target in **Add to Target** +5. Add the following package dependencies: + - `FlashcatCore` - Core SDK + - `FlashcatRUM` - RUM feature module @@ -85,11 +38,11 @@ In the Flashduty console's **RUM Application Management** page: -Initialize the SDK in your `AppDelegate.swift`'s `application(_:didFinishLaunchingWithOptions:)` method: +Initialize Flashcat SDK in your `AppDelegate.swift`'s `application(_:didFinishLaunchingWithOptions:)` method: ```swift AppDelegate.swift import UIKit -import DatadogCore +import FlashcatCore @main class AppDelegate: UIResponder, UIApplicationDelegate { @@ -97,8 +50,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - Datadog.initialize( - with: Datadog.Configuration( + Flashcat.initialize( + with: Flashcat.Configuration( clientToken: "", env: "" ), @@ -121,12 +74,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | State | Behavior | |-------|----------| -| `.granted` | Start collecting data and send to Flashduty | +| `.granted` | Start collecting data and send to Flashcat | | `.pending` | Start collecting and batching data, but don't send, wait for confirmation | | `.notGranted` | Do not collect any data | -You can dynamically modify tracking consent state after initialization via `Datadog.set(trackingConsent:)`. +You can dynamically modify tracking consent state after initialization via `Flashcat.set(trackingConsent:)`. @@ -135,7 +88,7 @@ You can dynamically modify tracking consent state after initialization via `Data Configure and enable RUM features. Recommend enabling early in `AppDelegate`: ```swift AppDelegate.swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -176,7 +129,7 @@ The SDK will automatically start collecting the following data: To monitor network requests sent from `URLSession` instances, enable `URLSessionInstrumentation` and pass your delegate class type: ```swift -import DatadogRUM +import FlashcatRUM URLSessionInstrumentation.enable( with: .init( @@ -207,7 +160,7 @@ Only network requests initiated while a view is active are tracked. ## View Tracking -Flashduty iOS SDK supports automatic tracking of UIKit and SwiftUI views. +Flashcat iOS SDK supports automatic tracking of UIKit and SwiftUI views. ### UIKit View Auto Tracking @@ -221,7 +174,7 @@ For SwiftUI apps, add the `.trackRUMView()` modifier to views: ```swift import SwiftUI -import DatadogRUM +import FlashcatRUM struct ProductView: View { var body: some View { @@ -243,7 +196,7 @@ The `trackRUMView(name:)` method automatically starts and stops view tracking wh For more granular control, manually track views: ```swift -import DatadogRUM +import FlashcatRUM // Start tracking view RUMMonitor.shared().startView( @@ -273,7 +226,7 @@ For SwiftUI controls, add the `.trackRUMTapAction()` modifier: ```swift import SwiftUI -import DatadogRUM +import FlashcatRUM struct CheckoutView: View { var body: some View { @@ -294,7 +247,7 @@ Using `.trackRUMTapAction(name:)` inside `List` may affect default gestures (e.g Manually track user actions: ```swift -import DatadogRUM +import FlashcatRUM RUMMonitor.shared().addAction( type: .tap, @@ -307,10 +260,10 @@ RUMMonitor.shared().addAction( ### Track Errors -Flashduty iOS SDK automatically captures app crashes and uncaught exceptions. You can also manually record errors: +Flashcat iOS SDK automatically captures app crashes and uncaught exceptions. You can also manually record errors: ```swift -import DatadogRUM +import FlashcatRUM RUMMonitor.shared().addError( message: "Network request failed", @@ -345,7 +298,7 @@ RUM.enable( ``` -Tracking background events may generate additional sessions, affecting billing. If you have questions, please contact Flashduty support team. +Tracking background events may generate additional sessions, affecting billing. If you have questions, please contact Flashcat support team. ### Track User Information @@ -353,9 +306,9 @@ Tracking background events may generate additional sessions, affecting billing. You can set user information for the current session to track specific user behavior: ```swift -import DatadogCore +import FlashcatCore -Datadog.setUserInfo( +Flashcat.setUserInfo( id: "user-123", name: "John Doe", email: "john.doe@example.com", @@ -392,7 +345,7 @@ If your iOS app contains WKWebView, you can enable WebView tracking to monitor w -When adding package dependencies in Swift Package Manager, also add the `FlashcatWebViewTracking` module. +When adding package dependencies in Swift Package Manager, also add the `FlashcatWebView` module. @@ -400,7 +353,7 @@ When adding package dependencies in Swift Package Manager, also add the `Flashca Enable WebView tracking in your ViewController: ```swift -import DatadogWebViewTracking +import FlashcatWebView import WebKit let webView = WKWebView() @@ -446,7 +399,7 @@ After integration, verify that the integration is successful: - Search for `Datadog` keyword in Xcode console to view SDK initialization and data reporting logs. + Search for `Flashcat` keyword in Xcode console to view SDK initialization and data reporting logs. diff --git a/zh/rum/sdk/android/advanced-config.mdx b/zh/rum/sdk/android/advanced-config.mdx index f557265..3d671ed 100644 --- a/zh/rum/sdk/android/advanced-config.mdx +++ b/zh/rum/sdk/android/advanced-config.mdx @@ -4,13 +4,6 @@ description: "深入配置 Android RUM SDK 的高级功能,包括自定义事 keywords: ["RUM", "Android SDK", "用户监控", "前端监控"] --- - -**关于依赖和包名的说明** - -Flashduty Android SDK 完全兼容 Datadog 开源协议,代码中的 import 语句使用 `com.datadog.android.*` 包名。您可以无缝复用 Datadog 生态的文档、示例和最佳实践,同时享受 Flashduty 平台的服务。 - - - Android RUM SDK 提供丰富的高级配置选项,帮助您根据业务需求定制数据收集和上下文信息。 @@ -31,28 +24,28 @@ Android RUM SDK 提供丰富的高级配置选项,帮助您根据业务需求 ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum fun onResume() { - GlobalRumMonitor.get().startView(viewKey, viewName, attributes) + GlobalRum.get().startView(viewKey, viewName, attributes) } fun onPause() { - GlobalRumMonitor.get().stopView(viewKey, attributes) + GlobalRum.get().stopView(viewKey, attributes) } ``` ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; public void onResume() { - GlobalRumMonitor.get().startView(viewKey, viewName, attributes); + GlobalRum.get().startView(viewKey, viewName, attributes); } public void onPause() { - GlobalRumMonitor.get().stopView(viewKey, attributes); + GlobalRum.get().stopView(viewKey, attributes); } ``` @@ -72,11 +65,11 @@ public void onPause() { ```kotlin -import com.datadog.android.rum.GlobalRumMonitor -import com.datadog.android.rum.RumActionType +import cloud.flashcat.android.rum.GlobalRum +import cloud.flashcat.android.rum.RumActionType fun onUserInteraction() { - GlobalRumMonitor.get().addAction( + GlobalRum.get().addAction( RumActionType.TAP, name, attributes @@ -87,11 +80,11 @@ fun onUserInteraction() { ```java -import com.datadog.android.rum.GlobalRumMonitor; -import com.datadog.android.rum.RumActionType; +import cloud.flashcat.android.rum.GlobalRum; +import cloud.flashcat.android.rum.RumActionType; public void onUserInteraction() { - GlobalRumMonitor.get().addAction( + GlobalRum.get().addAction( RumActionType.TAP, name, attributes @@ -118,22 +111,22 @@ public void onUserInteraction() { ```kotlin -import com.datadog.android.rum.GlobalRumMonitor -import com.datadog.android.rum.RumResourceKind +import cloud.flashcat.android.rum.GlobalRum +import cloud.flashcat.android.rum.RumResourceKind fun loadResource() { - GlobalRumMonitor.get().startResource(resourceKey, method, url, attributes) + GlobalRum.get().startResource(resourceKey, method, url, attributes) } fun resourceLoadSuccess() { - GlobalRumMonitor.get().stopResource( + GlobalRum.get().stopResource( resourceKey, statusCode, size, RumResourceKind.NATIVE, attributes ) } fun resourceLoadError() { - GlobalRumMonitor.get().stopResourceWithError( + GlobalRum.get().stopResourceWithError( resourceKey, statusCode, message, source, throwable ) } @@ -142,22 +135,22 @@ fun resourceLoadError() { ```java -import com.datadog.android.rum.GlobalRumMonitor; -import com.datadog.android.rum.RumResourceKind; +import cloud.flashcat.android.rum.GlobalRum; +import cloud.flashcat.android.rum.RumResourceKind; public void loadResource() { - GlobalRumMonitor.get().startResource(resourceKey, method, url, attributes); + GlobalRum.get().startResource(resourceKey, method, url, attributes); } public void resourceLoadSuccess() { - GlobalRumMonitor.get().stopResource( + GlobalRum.get().stopResource( resourceKey, statusCode, size, RumResourceKind.NATIVE, attributes ); } public void resourceLoadError() { - GlobalRumMonitor.get().stopResourceWithError( + GlobalRum.get().stopResourceWithError( resourceKey, statusCode, message, source, throwable ); } @@ -188,9 +181,9 @@ public void resourceLoadError() { ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum -GlobalRumMonitor.get().addError( +GlobalRum.get().addError( message, source, throwable, @@ -201,9 +194,9 @@ GlobalRumMonitor.get().addError( ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; -GlobalRumMonitor.get().addError( +GlobalRum.get().addError( message, source, throwable, @@ -224,20 +217,20 @@ GlobalRumMonitor.get().addError( ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum fun onHeroImageLoaded() { - GlobalRumMonitor.get().addTiming("hero_image") + GlobalRum.get().addTiming("hero_image") } ``` ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; public void onHeroImageLoaded() { - GlobalRumMonitor.get().addTiming("hero_image"); + GlobalRum.get().addTiming("hero_image"); } ``` @@ -254,9 +247,9 @@ RUM SDK 会自动追踪用户属性。您还可以添加额外的自定义用户 ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum -GlobalRumMonitor.get().setUserInfo( +GlobalRum.get().setUserInfo( id = "1234", name = "John Doe", email = "john@doe.com", @@ -270,7 +263,7 @@ GlobalRumMonitor.get().setUserInfo( ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; import java.util.HashMap; import java.util.Map; @@ -278,7 +271,7 @@ Map extraInfo = new HashMap<>(); extraInfo.put("plan", "premium"); extraInfo.put("group", "vip"); -GlobalRumMonitor.get().setUserInfo( +GlobalRum.get().setUserInfo( "1234", "John Doe", "john@doe.com", @@ -301,17 +294,17 @@ GlobalRumMonitor.get().setUserInfo( ```kotlin -import com.datadog.android.Datadog +import cloud.flashcat.android.Flashcat -Datadog.clearAllData() +Flashcat.clearAllData() ``` ```java -import com.datadog.android.Datadog; +import cloud.flashcat.android.Flashcat; -Datadog.clearAllData(); +Flashcat.clearAllData(); ``` @@ -323,17 +316,17 @@ Datadog.clearAllData(); ```kotlin -import com.datadog.android.Datadog +import cloud.flashcat.android.Flashcat -Datadog.stopInstance() +Flashcat.stopInstance() ``` ```java -import com.datadog.android.Datadog; +import cloud.flashcat.android.Flashcat; -Datadog.stopInstance(); +Flashcat.stopInstance(); ``` @@ -349,8 +342,8 @@ RUM SDK 会自动批量上传事件。您可以通过配置参数控制批量上 ```kotlin -import com.datadog.android.core.configuration.Configuration -import com.datadog.android.core.configuration.UploadFrequency +import cloud.flashcat.android.core.configuration.Configuration +import cloud.flashcat.android.core.configuration.UploadFrequency val configuration = Configuration.Builder( clientToken = clientToken, @@ -365,8 +358,8 @@ val configuration = Configuration.Builder( ```java -import com.datadog.android.core.configuration.Configuration; -import com.datadog.android.core.configuration.UploadFrequency; +import cloud.flashcat.android.core.configuration.Configuration; +import cloud.flashcat.android.core.configuration.UploadFrequency; Configuration configuration = new Configuration.Builder( clientToken, environmentName, appVariantName @@ -388,13 +381,13 @@ Configuration configuration = new Configuration.Builder( ### 设置远程日志阈值 -您可以为远程记录的消息定义最低日志级别。低于该级别的日志不会发送到 Flashduty: +您可以为远程记录的消息定义最低日志级别。低于该级别的日志不会发送到 Flashcat: ```kotlin -import com.datadog.android.log.Logs -import com.datadog.android.log.LogsConfiguration +import cloud.flashcat.android.log.Logs +import cloud.flashcat.android.log.LogsConfiguration import android.util.Log val logsConfig = LogsConfiguration.Builder() @@ -408,8 +401,8 @@ Logs.enable(logsConfig) ```java -import com.datadog.android.log.Logs; -import com.datadog.android.log.LogsConfiguration; +import cloud.flashcat.android.log.Logs; +import cloud.flashcat.android.log.LogsConfiguration; import android.util.Log; LogsConfiguration logsConfig = new LogsConfiguration.Builder() @@ -445,9 +438,9 @@ Logs.enable(logsConfig); ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum -GlobalRumMonitor.get().setUserInfo( +GlobalRum.get().setUserInfo( id = "1234", name = "John Doe", email = "john@doe.com" @@ -457,9 +450,9 @@ GlobalRumMonitor.get().setUserInfo( ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; -GlobalRumMonitor.get().setUserInfo("1234", "John Doe", "john@doe.com", null); +GlobalRum.get().setUserInfo("1234", "John Doe", "john@doe.com", null); ``` @@ -481,17 +474,17 @@ GlobalRumMonitor.get().setUserInfo("1234", "John Doe", "john@doe.com", null); ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum -GlobalRumMonitor.get().addAttribute("key", "value") +GlobalRum.get().addAttribute("key", "value") ``` ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; -GlobalRumMonitor.get().addAttribute("key", "value"); +GlobalRum.get().addAttribute("key", "value"); ``` @@ -501,17 +494,17 @@ GlobalRumMonitor.get().addAttribute("key", "value"); ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum -GlobalRumMonitor.get().removeAttribute("key") +GlobalRum.get().removeAttribute("key") ``` ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; -GlobalRumMonitor.get().removeAttribute("key"); +GlobalRum.get().removeAttribute("key"); ``` @@ -525,11 +518,11 @@ Widgets 不会自动追踪。要监控 Widget 的交互,需要手动调用 API ```kotlin -import com.datadog.android.rum.GlobalRumMonitor -import com.datadog.android.rum.RumActionType +import cloud.flashcat.android.rum.GlobalRum +import cloud.flashcat.android.rum.RumActionType fun onWidgetClicked() { - GlobalRumMonitor.get().addAction( + GlobalRum.get().addAction( RumActionType.TAP, "widget_clicked", mapOf("widget_name" to "HomeWidget") @@ -540,15 +533,15 @@ fun onWidgetClicked() { ```java -import com.datadog.android.rum.GlobalRumMonitor; -import com.datadog.android.rum.RumActionType; +import cloud.flashcat.android.rum.GlobalRum; +import cloud.flashcat.android.rum.RumActionType; import java.util.HashMap; import java.util.Map; public void onWidgetClicked() { Map attributes = new HashMap<>(); attributes.put("widget_name", "HomeWidget"); - GlobalRumMonitor.get().addAction( + GlobalRum.get().addAction( RumActionType.TAP, "widget_clicked", attributes @@ -560,7 +553,7 @@ public void onWidgetClicked() { ## 初始化参数 -在初始化 Flashduty Android SDK 时,您可以使用 `Configuration.Builder` 配置多种选项。 +在初始化 Flashcat Android SDK 时,您可以使用 `Configuration.Builder` 配置多种选项。 ### 自动追踪视图 @@ -569,8 +562,8 @@ public void onWidgetClicked() { ```kotlin -import com.datadog.android.rum.RumConfiguration -import com.datadog.android.rum.tracking.ActivityViewTrackingStrategy +import cloud.flashcat.android.rum.RumConfiguration +import cloud.flashcat.android.rum.tracking.ActivityViewTrackingStrategy val rumConfig = RumConfiguration.Builder(applicationId) .useViewTrackingStrategy(ActivityViewTrackingStrategy(true)) @@ -580,8 +573,8 @@ val rumConfig = RumConfiguration.Builder(applicationId) ```java -import com.datadog.android.rum.RumConfiguration; -import com.datadog.android.rum.tracking.ActivityViewTrackingStrategy; +import cloud.flashcat.android.rum.RumConfiguration; +import cloud.flashcat.android.rum.tracking.ActivityViewTrackingStrategy; RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) .useViewTrackingStrategy(new ActivityViewTrackingStrategy(true)) @@ -615,13 +608,9 @@ RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) ```groovy build.gradle dependencies { - implementation "cloud.flashcat:dd-sdk-android-apollo:" + implementation "cloud.flashcat:fc-sdk-android-apollo:x.x.x" } ``` - - -请访问 [Maven Central 版本页面](https://central.sonatype.com/artifact/cloud.flashcat/dd-sdk-android-core/versions) 获取最新版本号。 - @@ -631,11 +620,11 @@ dependencies { ```kotlin import com.apollographql.apollo.ApolloClient import com.apollographql.apollo.network.okHttpClient -import com.datadog.android.apollo.DatadogApolloInterceptor +import cloud.flashcat.android.apollo.FlashcatApolloInterceptor val apolloClient = ApolloClient.Builder() .serverUrl("GraphQL endpoint") - .addInterceptor(DatadogApolloInterceptor()) + .addInterceptor(FlashcatApolloInterceptor()) .okHttpClient(okHttpClient) .build() ``` @@ -644,11 +633,11 @@ val apolloClient = ApolloClient.Builder() ```java import com.apollographql.apollo.ApolloClient; -import com.datadog.android.apollo.DatadogApolloInterceptor; +import cloud.flashcat.android.apollo.FlashcatApolloInterceptor; ApolloClient apolloClient = new ApolloClient.Builder() .serverUrl("GraphQL endpoint") - .addInterceptor(new DatadogApolloInterceptor()) + .addInterceptor(new FlashcatApolloInterceptor()) .okHttpClient(okHttpClient) .build(); ``` @@ -656,7 +645,7 @@ ApolloClient apolloClient = new ApolloClient.Builder() -Flashduty 追踪头将自动添加到您的 GraphQL 请求中,使其能够被追踪。 +Flashcat 追踪头将自动添加到您的 GraphQL 请求中,使其能够被追踪。 @@ -672,13 +661,13 @@ Flashduty 追踪头将自动添加到您的 GraphQL 请求中,使其能够被 ```kotlin -DatadogApolloInterceptor(sendGraphQLPayloads = true) +FlashcatApolloInterceptor(sendGraphQLPayloads = true) ``` ```java -new DatadogApolloInterceptor(true) +new FlashcatApolloInterceptor(true) ``` @@ -690,7 +679,7 @@ new DatadogApolloInterceptor(true) ```kotlin -import com.datadog.android.rum.RumConfiguration +import cloud.flashcat.android.rum.RumConfiguration // 使用默认阈值(100ms) val rumConfig = RumConfiguration.Builder(applicationId) @@ -706,7 +695,7 @@ val rumConfig = RumConfiguration.Builder(applicationId) ```java -import com.datadog.android.rum.RumConfiguration; +import cloud.flashcat.android.rum.RumConfiguration; // 使用默认阈值(100ms) RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) @@ -732,7 +721,7 @@ RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) ```kotlin -import com.datadog.android.rum.RumConfiguration +import cloud.flashcat.android.rum.RumConfiguration val rumConfig = RumConfiguration.Builder(applicationId) .setErrorEventMapper(rumErrorEventMapper) @@ -746,7 +735,7 @@ val rumConfig = RumConfiguration.Builder(applicationId) ```java -import com.datadog.android.rum.RumConfiguration; +import cloud.flashcat.android.rum.RumConfiguration; RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) .setErrorEventMapper(rumErrorEventMapper) @@ -813,7 +802,7 @@ RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) -如果从 `EventMapper` 实现中返回 `null`,则事件将被丢弃,不会发送到 Flashduty。 +如果从 `EventMapper` 实现中返回 `null`,则事件将被丢弃,不会发送到 Flashcat。 ### 示例:丢弃敏感错误 @@ -851,14 +840,14 @@ RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) ## 获取 RUM Session ID -检索 RUM Session ID 对于故障排查很有帮助。您可以将 Session ID 附加到支持请求、电子邮件或错误报告中,以便支持团队在 Flashduty 中找到用户会话。 +检索 RUM Session ID 对于故障排查很有帮助。您可以将 Session ID 附加到支持请求、电子邮件或错误报告中,以便支持团队在 Flashcat 中找到用户会话。 ```kotlin -import com.datadog.android.rum.GlobalRumMonitor +import cloud.flashcat.android.rum.GlobalRum -GlobalRumMonitor.get().getCurrentSessionId { sessionId -> +GlobalRum.get().getCurrentSessionId { sessionId -> currentSessionId = sessionId } ``` @@ -866,9 +855,9 @@ GlobalRumMonitor.get().getCurrentSessionId { sessionId -> ```java -import com.datadog.android.rum.GlobalRumMonitor; +import cloud.flashcat.android.rum.GlobalRum; -GlobalRumMonitor.get().getCurrentSessionId(sessionId -> { +GlobalRum.get().getCurrentSessionId(sessionId -> { currentSessionId = sessionId; }); ``` @@ -886,7 +875,7 @@ GlobalRumMonitor.get().getCurrentSessionId(sessionId -> { ```kotlin -import com.datadog.android.rum.RumConfiguration +import cloud.flashcat.android.rum.RumConfiguration val rumConfig = RumConfiguration.Builder(applicationId) .setSessionSampleRate(90.0f) // 采集 90% 的会话 @@ -896,7 +885,7 @@ val rumConfig = RumConfiguration.Builder(applicationId) ```java -import com.datadog.android.rum.RumConfiguration; +import cloud.flashcat.android.rum.RumConfiguration; RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) .setSessionSampleRate(90.0f) // 采集 90% 的会话 @@ -924,7 +913,7 @@ RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) | 状态 | 行为 | 使用场景 | |------|------|---------| -| `TrackingConsent.GRANTED` | 开始收集数据并发送到 Flashduty | 用户已同意数据收集 | +| `TrackingConsent.GRANTED` | 开始收集数据并发送到 Flashcat | 用户已同意数据收集 | | `TrackingConsent.NOT_GRANTED` | 不收集任何数据 | 用户拒绝数据收集 | | `TrackingConsent.PENDING` | 收集数据但不发送 | 等待用户确认 | @@ -939,19 +928,19 @@ RumConfiguration rumConfig = new RumConfiguration.Builder(applicationId) ```kotlin -import com.datadog.android.Datadog -import com.datadog.android.privacy.TrackingConsent +import cloud.flashcat.android.Flashcat +import cloud.flashcat.android.privacy.TrackingConsent -Datadog.setTrackingConsent(TrackingConsent.GRANTED) +Flashcat.setTrackingConsent(TrackingConsent.GRANTED) ``` ```java -import com.datadog.android.Datadog; -import com.datadog.android.privacy.TrackingConsent; +import cloud.flashcat.android.Flashcat; +import cloud.flashcat.android.privacy.TrackingConsent; -Datadog.setTrackingConsent(TrackingConsent.GRANTED); +Flashcat.setTrackingConsent(TrackingConsent.GRANTED); ``` diff --git a/zh/rum/sdk/android/data-collection.mdx b/zh/rum/sdk/android/data-collection.mdx index cf55078..9c992bb 100644 --- a/zh/rum/sdk/android/data-collection.mdx +++ b/zh/rum/sdk/android/data-collection.mdx @@ -10,7 +10,7 @@ Flashduty Android RUM SDK 默认自动收集所有 RUM 事件的多个指标和 ## 应用启动指标 -Flashduty 自动收集以下应用启动性能指标: +Flashcat 自动收集以下应用启动性能指标: | 指标 | 描述 | 测量范围 | |------|------|---------| @@ -60,7 +60,7 @@ RUM SDK 为所有事件自动附加默认属性,帮助您了解用户设备、 | 属性名 | 类型 | 描述 | | --------------------- | ------ | ------------------------------------------------------------------- | -| `application.id` | string | Flashduty 应用 ID。 | +| `application.id` | string | Flashcat 应用 ID。 | | `application.name` | string | 应用包名(例如 `com.example.app`)。 | | `application.version` | string | 应用版本名称。 | | `application.build` | string | 应用构建版本号。 | @@ -72,7 +72,7 @@ RUM SDK 为所有事件自动附加默认属性,帮助您了解用户设备、 | `env` | string | 应用的环境名称(例如 `prod`、`dev`)。 | | `service` | string | 服务名称,用于区分应用的不同模块或微服务。 | | `version` | string | 应用版本。 | -| `sdk_version` | string | Flashduty SDK 版本。 | +| `sdk_version` | string | Flashcat SDK 版本。 | | `date` | number | 事件发生的时间戳(epoch 毫秒) | | `type` | string | 事件类型(如 `view`、`resource`、`action`、`error`、`long_task`) | @@ -130,7 +130,7 @@ RUM 可以从用户的 IP 地址推断出地理位置信息: | `geo.city` | string | 城市名称 | -地理位置信息由 Flashduty 后端根据客户端 IP 地址推断,不会在客户端收集精确的 GPS 位置。 +地理位置信息由 Flashcat 后端根据客户端 IP 地址推断,不会在客户端收集精确的 GPS 位置。 @@ -278,7 +278,7 @@ Action 代表用户与应用的交互(例如点击、滑动、滚动)。 ### 本地存储机制 -在数据上传到 Flashduty 之前,会以明文形式存储在应用的缓存目录中。 +在数据上传到 Flashcat 之前,会以明文形式存储在应用的缓存目录中。 **存储位置:** ``` @@ -350,7 +350,7 @@ Android RUM SDK 采用批处理方式上传事件,在保证数据传输的同 -Flashduty SDK 会在设备解锁后开始收集数据。如果您需要在 Direct Boot 模式下收集数据,请确保使用设备加密存储而非凭据加密存储。 +Flashcat SDK 会在设备解锁后开始收集数据。如果您需要在 Direct Boot 模式下收集数据,请确保使用设备加密存储而非凭据加密存储。 ## 相关文档 diff --git a/zh/rum/sdk/android/performance-impact.mdx b/zh/rum/sdk/android/performance-impact.mdx index 38a38a2..462176b 100644 --- a/zh/rum/sdk/android/performance-impact.mdx +++ b/zh/rum/sdk/android/performance-impact.mdx @@ -1,12 +1,12 @@ --- title: "Android SDK 性能影响" -description: "了解 Flashduty Android RUM SDK 对应用 CPU、内存、启动时间、APK 大小和网络使用的影响,以及性能优化建议。" +description: "了解 Flashcat Android RUM SDK 对应用 CPU、内存、启动时间、APK 大小和网络使用的影响,以及性能优化建议。" keywords: ["Android SDK", "性能影响", "RUM", "性能优化", "内存使用", "CPU"] --- ## 概述 -在将任何 SDK 集成到 Android 应用时,了解其性能影响对于维护良好的用户体验至关重要。Flashduty RUM SDK 在设计时充分考虑了性能因素,并提供透明的测量数据,帮助您做出明智的集成决策。 +在将任何 SDK 集成到 Android 应用时,了解其性能影响对于维护良好的用户体验至关重要。Flashcat RUM SDK 在设计时充分考虑了性能因素,并提供透明的测量数据,帮助您做出明智的集成决策。 SDK 采用异步处理和批量上报机制,避免阻塞主线程,确保不影响应用的 UI 响应性能。 @@ -16,9 +16,9 @@ SDK 采用异步处理和批量上报机制,避免阻塞主线程,确保不 为了评估 SDK 对应用性能的实际影响,我们在典型使用场景下进行了性能基准测试。测试中启用了以下 SDK 功能模块: -- `dd-sdk-android-rum`:RUM 核心功能 -- `dd-sdk-android-trace`:链路追踪 -- `dd-sdk-android-okhttp`:网络请求追踪 +- `fc-sdk-android-rum`:RUM 核心功能 +- `fc-sdk-android-trace`:链路追踪 +- `fc-sdk-android-okhttp`:网络请求追踪 SDK 使用默认配置进行初始化,并模拟常见用户操作(如页面浏览、滚动列表、网络请求等)。 @@ -66,10 +66,10 @@ SDK 采用模块化设计,您可以根据需要只引入必要的功能模块 | 模块 | 说明 | | --- | --- | -| `dd-sdk-android-rum` | RUM 核心功能 | -| `dd-sdk-android-trace` | 链路追踪 | -| `dd-sdk-android-okhttp` | OkHttp 网络追踪 | -| `dd-sdk-android-webview` | WebView 追踪 | +| `fc-sdk-android-rum` | RUM 核心功能 | +| `fc-sdk-android-trace` | 链路追踪 | +| `fc-sdk-android-okhttp` | OkHttp 网络追踪 | +| `fc-sdk-android-webview` | WebView 追踪 | 只引入必要的模块可以最小化对 APK 大小的影响。 diff --git a/zh/rum/sdk/android/sdk-integration.mdx b/zh/rum/sdk/android/sdk-integration.mdx index f397f96..4809294 100644 --- a/zh/rum/sdk/android/sdk-integration.mdx +++ b/zh/rum/sdk/android/sdk-integration.mdx @@ -5,36 +5,21 @@ keywords: ["RUM", "Android SDK", "用户监控", "前端监控"] --- - Flashduty Android RUM SDK 支持 **Android 6.0 (API level 23)** - 及以上版本。通过集成 SDK,您可以实时监控 Android 应用的性能、错误和用户行为。 +Flashduty Android RUM SDK 支持 **Android 6.0 (API level 23)** 及以上版本。通过集成 SDK,您可以实时监控 Android 应用的性能、错误和用户行为。 - -**关于依赖和包名的说明** - -Flashduty Android SDK 完全兼容 Datadog 开源协议,代码中的 import 语句使用 `com.datadog.android.*` 包名。您可以无缝复用 Datadog 生态的文档、示例和最佳实践,同时享受 Flashduty 平台的服务。 - - - ## 接入步骤 - 在您的应用模块的 `build.gradle` 文件中添加 Flashduty SDK 依赖: + 在您的应用模块的 `build.gradle` 文件中添加 Flashcat SDK 依赖: ```groovy build.gradle dependencies { - implementation "cloud.flashcat:dd-sdk-android-core:" - implementation "cloud.flashcat:dd-sdk-android-rum:" + implementation "cloud.flashcat:fc-sdk-android-core:0.1.0" + implementation "cloud.flashcat:fc-sdk-android-rum:0.1.0" } ``` - - - 请访问 [Maven Central - 版本页面](https://central.sonatype.com/artifact/cloud.flashcat/dd-sdk-android-core/versions) - 获取最新版本号。 - - @@ -45,15 +30,19 @@ dependencies { - **Application ID** - 应用唯一标识符 - **Client Token** - 客户端访问令牌 + + RUM 应用管理页面展示 Application ID 和 Client Token 的位置 + - 在您的 `Application` 类的 `onCreate()` 方法中初始化 SDK: + 在您的 `Application` 类的 `onCreate()` 方法中初始化 Flashcat SDK: ```kotlin Application.kt -import com.datadog.android.Datadog -import com.datadog.android.core.configuration.Configuration -import com.datadog.android.privacy.TrackingConsent +import cloud.flashcat.android.Flashcat +import cloud.flashcat.android.FlashcatSite +import cloud.flashcat.android.core.configuration.Configuration +import cloud.flashcat.android.privacy.TrackingConsent class SampleApplication : Application() { override fun onCreate() { @@ -69,7 +58,7 @@ class SampleApplication : Application() { variant = appVariantName ).build() - Datadog.initialize(this, configuration, TrackingConsent.GRANTED) + Flashcat.initialize(this, configuration, TrackingConsent.GRANTED) } } ``` @@ -86,16 +75,16 @@ class SampleApplication : Application() { 配置并启用 Android SDK 的 RUM 功能: ```kotlin Application.kt -import com.datadog.android.rum.Rum -import com.datadog.android.rum.RumConfiguration -import com.datadog.android.rum.tracking.ActivityViewTrackingStrategy +import cloud.flashcat.android.rum.Rum +import cloud.flashcat.android.rum.RumConfiguration +import cloud.flashcat.android.rum.tracking.ActivityViewTrackingStrategy val rumConfig = RumConfiguration.Builder(applicationId) .trackUserInteractions() .trackLongTasks(durationThreshold) .useViewTrackingStrategy(ActivityViewTrackingStrategy(true)) .build() - + Rum.enable(rumConfig) ``` @@ -114,15 +103,19 @@ SDK 将自动开始收集以下数据: ```groovy build.gradle dependencies { - implementation "cloud.flashcat:dd-sdk-android-okhttp:" + implementation "cloud.flashcat:fc-sdk-android-okhttp:0.1.0" } ``` **配置拦截器:** + + 目前采用的社区 Datadog 提供的 http 拦截器 + + ```kotlin -import com.datadog.android.okhttp.DatadogInterceptor -import com.datadog.android.trace.TracingHeaderType +import cloud.flashcat.android.okhttp.DatadogInterceptor +import cloud.flashcat.android.trace.TracingHeaderType val tracedHostsWithHeaderType = mapOf( "example.com" to setOf( @@ -141,14 +134,13 @@ val okHttpClient = OkHttpClient.Builder() ``` - 使用 `DatadogInterceptor` 后,OkHttpClient - 处理的每个请求都会被自动记录为资源,相关信息(URL、方法、状态码、错误)会自动填充。 +使用 `DatadogInterceptor` 后,OkHttpClient 处理的每个请求都会被自动记录为资源,相关信息(URL、方法、状态码、错误)会自动填充。 - - 只有在视图处于活动状态时发起的网络请求才会被追踪 - - 要追踪应用在后台时的请求,请参阅 [追踪后台事件](#追踪后台事件) - - 如果使用多个拦截器,请将 `DatadogInterceptor` 添加为第一个拦截器 +- 只有在视图处于活动状态时发起的网络请求才会被追踪 +- 要追踪应用在后台时的请求,请参阅 [追踪后台事件](#追踪后台事件) +- 如果使用多个拦截器,请将 `DatadogInterceptor` 添加为第一个拦截器 **追踪网络重定向或重试:** @@ -162,8 +154,7 @@ val okHttpClient = OkHttpClient.Builder() ``` - 您还可以为 `OkHttpClient` 添加 - `EventListener`,以自动追踪第三方提供商和网络请求的资源时序。 +您还可以为 `OkHttpClient` 添加 `EventListener`,以自动追踪第三方提供商和网络请求的资源时序。 **过滤特定错误:** @@ -181,7 +172,6 @@ val rumConfig = RumConfiguration.Builder(applicationId) } .build() ``` - @@ -198,8 +188,7 @@ val rumConfig = RumConfiguration.Builder(applicationId) ``` - 追踪后台事件可能会产生额外的会话,从而影响计费。如有疑问,请联系 Flashduty - 支持团队。 +追踪后台事件可能会产生额外的会话,从而影响计费。如有疑问,请联系 Flashcat 支持团队。 ### 离线数据处理 @@ -207,12 +196,14 @@ val rumConfig = RumConfiguration.Builder(applicationId) Android SDK 确保在用户设备离线时的数据可用性: - **数据持久化机制:** - 网络信号弱或设备电量过低时,事件以批次形式存储在本地 - - 网络恢复后自动上传,确保不丢失数据 - 自动清理过旧数据,避免占用过多磁盘空间 +**数据持久化机制:** +- 网络信号弱或设备电量过低时,事件以批次形式存储在本地 +- 网络恢复后自动上传,确保不丢失数据 +- 自动清理过旧数据,避免占用过多磁盘空间 - 即使用户在离线时使用应用,数据也会被保留并在网络恢复后上传,不会丢失任何监控数据。 +即使用户在离线时使用应用,数据也会被保留并在网络恢复后上传,不会丢失任何监控数据。 ### 追踪本地资源访问 @@ -242,10 +233,9 @@ val inputStream = context.getRawResAsRumResource(id) ```groovy build.gradle dependencies { - implementation "cloud.flashcat:dd-sdk-android-webview:" + implementation "cloud.flashcat:fc-sdk-android-webview:0.1.0" } ``` - @@ -253,7 +243,7 @@ dependencies { 在您的 Activity 或 Fragment 中启用 WebView 追踪: ```kotlin -import com.datadog.android.webview.WebViewTracking +import cloud.flashcat.android.webview.WebViewTracking // 为指定的 WebView 启用追踪 WebViewTracking.enable(webView, listOf("example.com", "*.example.com")) @@ -267,7 +257,9 @@ WebViewTracking.enable(webView, listOf("example.com", "*.example.com")) -WebView 中的 Web 页面现在可以与原生应用的 RUM 数据关联起来。 + +WebView 中的 Web 页面现在可以与原生应用的 RUM 数据关联起来。 + ## 验证接入 @@ -279,8 +271,10 @@ WebViewTracking.enable(webView, listOf("example.com", "*.example.com")) - 在应用中执行以下操作验证数据采集: - 打开应用的不同页面,验证页面浏览事件 - - 执行用户操作(点击、滑动等),验证交互事件 - 触发网络请求,验证资源加载事件 + 在应用中执行以下操作验证数据采集: + - 打开应用的不同页面,验证页面浏览事件 + - 执行用户操作(点击、滑动等),验证交互事件 + - 触发网络请求,验证资源加载事件 @@ -297,9 +291,9 @@ WebViewTracking.enable(webView, listOf("example.com", "*.example.com")) 如果您的应用启用了代码混淆(ProGuard/R8),请在 `proguard-rules.pro` 文件中添加以下规则: ```proguard proguard-rules.pro -# Flashduty SDK (兼容 Datadog 协议) --keep class com.datadog.android.** { *; } --dontwarn com.datadog.android.** +# Flashcat SDK +-keep class cloud.flashcat.android.** { *; } +-dontwarn cloud.flashcat.android.** ``` ## 下一步 @@ -309,11 +303,7 @@ WebViewTracking.enable(webView, listOf("example.com", "*.example.com")) 深入配置 SDK 的高级功能,如自定义采样、用户标识、全局上下文等 - + 了解 SDK 收集的数据类型和数据结构 diff --git a/zh/rum/sdk/ios/advanced-config.mdx b/zh/rum/sdk/ios/advanced-config.mdx index d12ae5e..524fef8 100644 --- a/zh/rum/sdk/ios/advanced-config.mdx +++ b/zh/rum/sdk/ios/advanced-config.mdx @@ -4,14 +4,7 @@ description: "深入配置 iOS RUM SDK 的高级功能,包括自定义事件 keywords: ["RUM", "iOS SDK", "用户监控", "前端监控"] --- - -**关于依赖和包名的说明** - -Flashduty iOS SDK 完全兼容 Datadog 开源协议。在 Swift Package Manager 或 CocoaPods 中添加依赖时使用 `FlashcatCore`、`FlashcatRUM` 等名称,但在代码中 import 时使用 `DatadogCore`、`DatadogRUM` 等模块名。您可以无缝复用 Datadog 生态的文档、示例和最佳实践,同时享受 Flashduty 平台的服务。 - - - -Flashduty iOS RUM SDK 提供丰富的高级配置选项,帮助您根据业务需求定制数据收集和上下文信息。 +iOS RUM SDK 提供丰富的高级配置选项,帮助您根据业务需求定制数据收集和上下文信息。 **支持的配置场景:** @@ -34,7 +27,7 @@ Flashduty iOS RUM SDK 提供丰富的高级配置选项,帮助您根据业务 ```swift -import DatadogRUM +import FlashcatRUM // 在您的 UIViewController 中 override func viewDidAppear(_ animated: Bool) { @@ -58,7 +51,7 @@ override func viewDidDisappear(_ animated: Bool) { ```objective-c -@import DatadogObjc; +@import FlashcatObjc; // 在您的 UIViewController 中 - (void)viewDidAppear:(BOOL)animated { @@ -84,7 +77,7 @@ override func viewDidDisappear(_ animated: Bool) { ```swift -import DatadogRUM +import FlashcatRUM // 在您的 UIViewController 中 @IBAction func didTapDownloadResourceButton(_ sender: UIButton) { @@ -99,7 +92,7 @@ import DatadogRUM ```objective-c -@import DatadogObjc; +@import FlashcatObjc; - (IBAction)didTapDownloadResourceButton:(UIButton *)sender { [[RUMMonitor shared] addActionWithType:RUMActionTypeTap @@ -116,12 +109,12 @@ import DatadogRUM ### 自定义资源 -Flashduty iOS SDK 会自动追踪通过启用的 `URLSession` 发起的网络请求。您也可以手动追踪自定义资源(如第三方 API、GraphQL 查询等)。 +Flashcat iOS SDK 会自动追踪通过启用的 `URLSession` 发起的网络请求。您也可以手动追踪自定义资源(如第三方 API、GraphQL 查询等)。 ```swift -import DatadogRUM +import FlashcatRUM // 在您的网络客户端中 RUMMonitor.shared().startResource( @@ -149,7 +142,7 @@ RUMMonitor.shared().stopResourceWithError( ```objective-c -@import DatadogObjc; +@import FlashcatObjc; // 在您的网络客户端中 [[RUMMonitor shared] startResourceWithResourceKey:@"resource-key" @@ -176,7 +169,7 @@ RUMMonitor.shared().stopResourceWithError( ```swift -import DatadogRUM +import FlashcatRUM RUMMonitor.shared().addError( message: "Error message", @@ -192,7 +185,7 @@ RUMMonitor.shared().addError( ```objective-c -@import DatadogObjc; +@import FlashcatObjc; [[RUMMonitor shared] addErrorWithMessage:@"Error message" type:@"ErrorType" @@ -225,7 +218,7 @@ iOS SDK 会自动捕获默认 RUM 属性。您还可以向 RUM 事件添加额 ```swift -import DatadogRUM +import FlashcatRUM // 添加全局属性 RUMMonitor.shared().addAttribute(forKey: "user_plan", value: "premium") @@ -237,7 +230,7 @@ RUMMonitor.shared().removeAttribute(forKey: "user_plan") ```objective-c -@import DatadogObjc; +@import FlashcatObjc; // 添加全局属性 [[RUMMonitor shared] addAttributeForKey:@"user_plan" value:@"premium"]; @@ -267,9 +260,9 @@ RUMMonitor.shared().removeAttribute(forKey: "user_plan") ```swift -import DatadogCore +import FlashcatCore -Datadog.setUserInfo( +Flashcat.setUserInfo( id: "1234", name: "John Doe", email: "john@doe.com", @@ -283,12 +276,12 @@ Datadog.setUserInfo( ```objective-c -@import DatadogObjc; +@import FlashcatObjc; -[DDDatadog setUserInfoWithId:@"1234" - name:@"John Doe" - email:@"john@doe.com" - extraInfo:@{@"plan": @"premium", @"signup_date": @"2024-01-15"}]; +[Flashcat setUserInfoWithId:@"1234" + name:@"John Doe" + email:@"john@doe.com" + extraInfo:@{@"plan": @"premium", @"signup_date": @"2024-01-15"}]; ``` @@ -308,7 +301,7 @@ Datadog.setUserInfo( ```swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -321,7 +314,7 @@ RUM.enable( ```objective-c -@import DatadogObjc; +@import FlashcatObjc; DDRUMConfiguration *configuration = [[DDRUMConfiguration alloc] initWithApplicationID:@""]; @@ -333,16 +326,16 @@ configuration.trackBackgroundEvents = YES; -追踪后台事件可能会产生额外的会话,从而影响计费。如有疑问,请联系 Flashduty 支持团队。 +追踪后台事件可能会产生额外的会话,从而影响计费。如有疑问,请联系 Flashcat 支持团队。 ## 初始化参数 -在创建 SDK 配置时,可以设置以下属性: +在创建 Flashcat 配置时,可以设置以下属性: - + | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| @@ -384,7 +377,7 @@ configuration.trackBackgroundEvents = YES; 对于 **UIKit**,使用 `DefaultUIKitRUMViewsPredicate` 类: ```swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -397,7 +390,7 @@ RUM.enable( 对于 **SwiftUI**,使用 `DefaultSwiftUIRUMViewsPredicate` 类: ```swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -416,7 +409,7 @@ RUM.enable( 对于 **UIKit**: ```swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -429,7 +422,7 @@ RUM.enable( 对于 **SwiftUI**: ```swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -444,7 +437,7 @@ RUM.enable( 要启用网络请求自动追踪(资源和错误),在初始化 RUM 时设置 `urlSessionTracking` 并启用 `URLSessionInstrumentation`: ```swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -463,7 +456,7 @@ URLSessionInstrumentation.enable( 您还可以配置 `firstPartyHostsTracing` 以启用分布式追踪,将 RUM 资源与后端 traces 关联: ```swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -488,12 +481,12 @@ RUM.enable( ## 修改或丢弃 RUM 事件 -在 RUM 事件发送到 Flashduty 之前,您可以通过事件映射器(Event Mappers)对其进行修改或完全丢弃。 +在 RUM 事件发送到 Flashcat 之前,您可以通过事件映射器(Event Mappers)对其进行修改或完全丢弃。 事件映射器在创建 RUM 配置时设置: ```swift -import DatadogRUM +import FlashcatRUM let configuration = RUM.Configuration( applicationID: "", @@ -518,7 +511,7 @@ RUM.enable(with: configuration) ``` ```objective-c -@import DatadogObjc; +@import FlashcatObjc; DDRUMConfiguration *configuration = [[DDRUMConfiguration alloc] initWithApplicationID:@""]; @@ -566,7 +559,7 @@ DDRUMConfiguration *configuration = [[DDRUMConfiguration alloc] initWithApplicat }]; ``` -从 error、resource 或 action 映射器返回 `nil` 将完全丢弃该事件;该事件不会发送到 Flashduty。从 view 事件映射器返回的值不能为 `nil`(要丢弃视图,请自定义 `UIKitRUMViewsPredicate` 的实现;详见[追踪视图自动化](https://docs.flashcat.cloud/zh/flashduty/rum/ios-sdk-integration#自动追踪视图))。 +从 error、resource 或 action 映射器返回 `nil` 将完全丢弃该事件;该事件不会发送到 Flashcat。从 view 事件映射器返回的值不能为 `nil`(要丢弃视图,请自定义 `UIKitRUMViewsPredicate` 的实现;详见[追踪视图自动化](https://docs.flashcat.cloud/zh/flashduty/rum/ios-sdk-integration#自动追踪视图))。 根据事件的类型,只有某些特定的属性可以被修改: @@ -586,12 +579,12 @@ DDRUMConfiguration *configuration = [[DDRUMConfiguration alloc] initWithApplicat ## 获取 RUM 会话 ID -检索 RUM 会话 ID 对于故障排查非常有用。例如,您可以将会话 ID 附加到支持请求、电子邮件或错误报告中,以便您的支持团队稍后在 Flashduty 中找到用户会话。 +检索 RUM 会话 ID 对于故障排查非常有用。例如,您可以将会话 ID 附加到支持请求、电子邮件或错误报告中,以便您的支持团队稍后在 Flashcat 中找到用户会话。 您可以在运行时访问 RUM 会话 ID,无需等待 `sessionStarted` 事件: ```swift -import DatadogRUM +import FlashcatRUM RUMMonitor.shared().currentSessionID(completion: { sessionId in currentSessionId = sessionId @@ -599,7 +592,7 @@ RUMMonitor.shared().currentSessionID(completion: { sessionId in ``` ```objective-c -@import DatadogObjc; +@import FlashcatObjc; [[RUMMonitor shared] currentSessionIDWithCompletion:^(NSString * _Nullable sessionId) { // use session ID @@ -608,81 +601,81 @@ RUMMonitor.shared().currentSessionID(completion: { sessionId in ## 设置追踪同意(GDPR 合规) -为符合 GDPR 法规,Flashduty iOS SDK 在初始化时需要追踪同意值。 +为符合 GDPR 法规,Flashcat iOS SDK 在初始化时需要追踪同意值。 `trackingConsent` 设置可以是以下值之一: -1. `.pending`: Flashduty iOS SDK 开始收集和批处理数据,但不发送到 Flashduty。SDK 等待新的追踪同意值来决定如何处理批处理的数据。 -2. `.granted`: Flashduty iOS SDK 开始收集数据并发送到 Flashduty。 +1. `.pending`: Flashcat iOS SDK 开始收集和批处理数据,但不发送到 Flashcat。Flashcat iOS SDK 等待新的追踪同意值来决定如何处理批处理的数据。 +2. `.granted`: Flashcat iOS SDK 开始收集数据并发送到 Flashcat。 3. `.notGranted`: iOS SDK 不收集任何数据。不会发送日志、traces 或 RUM 事件。 -在 SDK 初始化后更改追踪同意值,请使用 `Datadog.set(trackingConsent:)` API 调用。SDK 会根据新值更改其行为。 +在 Flashcat iOS SDK 初始化后更改追踪同意值,请使用 `Flashcat.set(trackingConsent:)` API 调用。Flashcat iOS SDK 会根据新值更改其行为。 例如,如果当前追踪同意是 `.pending`: -- 如果您将值更改为 `.granted`,SDK 将发送所有当前和未来的数据到 Flashduty; -- 如果您将值更改为 `.notGranted`,SDK 将清除所有当前数据并且不收集未来的数据。 +- 如果您将值更改为 `.granted`,Flashcat iOS SDK 将发送所有当前和未来的数据到 Flashcat; +- 如果您将值更改为 `.notGranted`,Flashcat iOS SDK 将清除所有当前数据并且不收集未来的数据。 ```swift -import DatadogCore +import FlashcatCore -Datadog.set(trackingConsent: .granted) +Flashcat.set(trackingConsent: .granted) ``` ```objective-c -@import DatadogObjc; +@import FlashcatObjc; -[DDDatadog setWithTrackingConsent:DDTrackingConsentGranted]; +[Flashcat setWithTrackingConsent:DDTrackingConsentGranted]; ``` ## 添加用户属性 -您可以使用 `Datadog.addUserExtraInfo(_:)` API 将额外的用户属性附加到先前设置的属性上。 +您可以使用 `Flashcat.addUserExtraInfo(_:)` API 将额外的用户属性附加到先前设置的属性上。 ```swift -import DatadogCore +import FlashcatCore -Datadog.addUserExtraInfo(["company": "Flashduty"]) +Flashcat.addUserExtraInfo(["company": "Flashcat"]) ``` ```objective-c -@import DatadogObjc; +@import FlashcatObjc; -[DDDatadog addUserExtraInfo:@{@"company": @"Flashduty"}]; +[Flashcat addUserExtraInfo:@{@"company": @"Flashcat"}]; ``` ## 数据管理 ### 清除所有数据 -您可以选择删除 SDK 存储的所有未发送数据,使用 `Datadog.clearAllData()` API: +您可以选择删除 SDK 存储的所有未发送数据,使用 `Flashcat.clearAllData()` API: ```swift -import DatadogCore +import FlashcatCore -Datadog.clearAllData() +Flashcat.clearAllData() ``` ```objective-c -@import DatadogObjc; +@import FlashcatObjc; -[DDDatadog clearAllData]; +[Flashcat clearAllData]; ``` ### 停止数据收集 -您可以使用 `Datadog.stopInstance()` API 停止命名的 SDK 实例(如果名称为 `nil` 则停止默认实例)进一步收集和上传数据。 +您可以使用 `Flashcat.stopInstance()` API 停止命名的 SDK 实例(如果名称为 `nil` 则停止默认实例)进一步收集和上传数据。 ```swift -import DatadogCore +import FlashcatCore -Datadog.stopInstance() +Flashcat.stopInstance() ``` ```objective-c -@import DatadogObjc; +@import FlashcatObjc; -[DDDatadog stopInstance]; +[Flashcat stopInstance]; ``` 调用此方法会禁用 SDK 和所有活跃的功能,如 RUM。要恢复数据收集,您必须重新初始化 SDK。如果您想动态更改配置,可以使用此 API。 @@ -692,7 +685,7 @@ Datadog.stopInstance() 默认情况下,RUM 会收集所有会话的数据。您可以通过 `sessionSampleRate` 参数设置采样率(百分比)来减少收集的会话数量。例如,采集 90% 的会话: ```swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -703,7 +696,7 @@ RUM.enable( ``` ```objective-c -@import DatadogObjc; +@import FlashcatObjc; DDRUMConfiguration *configuration = [[DDRUMConfiguration alloc] initWithApplicationID:@""]; configuration.sessionSampleRate = 90; @@ -724,7 +717,7 @@ configuration.sessionSampleRate = 90; 初始化 RUM SDK,使用 `firstPartyHostsTracing` 来配置当前应用的 API 服务域名: ```swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -749,7 +742,7 @@ URLSessionInstrumentation.enable( ``` ```objective-c -@import DatadogObjc; +@import FlashcatObjc; DDRUMConfiguration *configuration = [[DDRUMConfiguration alloc] initWithApplicationID:@""]; diff --git a/zh/rum/sdk/ios/compatible.mdx b/zh/rum/sdk/ios/compatible.mdx index 77ab2e1..7b279f4 100644 --- a/zh/rum/sdk/ios/compatible.mdx +++ b/zh/rum/sdk/ios/compatible.mdx @@ -94,14 +94,14 @@ UIWebView 已被 Apple 废弃,请使用 WKWebView。 ## SDK 模块 -Flashduty iOS SDK 由以下模块组成: +Flashcat iOS SDK 由以下模块组成: -| 依赖名称 (SPM/CocoaPods) | Import 名称 | 功能说明 | 是否必需 | -|-------------------------|------------|---------|---------| -| **FlashcatCore** | `DatadogCore` | 核心 SDK,提供基础功能 | ✅ 必需 | -| **FlashcatRUM** | `DatadogRUM` | RUM 数据收集和上报 | ✅ 必需 | -| **FlashcatWebViewTracking** | `DatadogWebViewTracking` | WebView 集成支持 | 可选 | -| **FlashcatCrashReporting** | `DatadogCrashReporting` | 崩溃报告 | 推荐 | +| 模块名称 | 功能说明 | 平台支持 | 是否必需 | +|---------|---------|---------|---------| +| **FlashcatCore** | 核心 SDK,提供基础功能 | iOS, iPadOS, tvOS, macOS | ✅ 必需 | +| **FlashcatRUM** | RUM 数据收集和上报 | iOS, iPadOS, tvOS | ✅ 必需 | +| **FlashcatWebView** | WebView 集成支持 | iOS, iPadOS | 可选 | +| **FlashcatCrash** | 崩溃报告(集成 PLCrashReporter) | iOS, iPadOS, tvOS | 推荐 | 根据您的需求选择性集成模块,只有 `FlashcatCore` 和 `FlashcatRUM` 是必需的。 @@ -110,7 +110,7 @@ Flashduty iOS SDK 由以下模块组成: ## 第三方依赖 -Flashduty iOS SDK 依赖以下第三方库: +Flashcat iOS SDK 依赖以下第三方库: | 库名称 | 版本 | 用途 | @@ -167,7 +167,7 @@ SwiftUI 应用建议结合自动追踪和手动追踪,以获得最佳监控效 ## 性能影响 -Flashduty iOS SDK 设计为轻量级,对应用性能的影响极小: +Flashcat iOS SDK 设计为轻量级,对应用性能的影响极小: | 指标 | 影响 | |------|------| diff --git a/zh/rum/sdk/ios/data-collection.mdx b/zh/rum/sdk/ios/data-collection.mdx index 45af49c..5cc25d1 100644 --- a/zh/rum/sdk/ios/data-collection.mdx +++ b/zh/rum/sdk/ios/data-collection.mdx @@ -109,7 +109,7 @@ iOS RUM SDK 为所有事件自动附加默认属性,帮助您了解用户设 | `geo.city` | 字符串 | 城市名称 | -地理位置信息由 Flashduty 后端根据客户端 IP 地址推断,不会在客户端收集精确的 GPS 位置。 +地理位置信息由 Flashcat 后端根据客户端 IP 地址推断,不会在客户端收集精确的 GPS 位置。 @@ -270,7 +270,7 @@ iOS RUM SDK 为所有事件自动附加默认属性,帮助您了解用户设 ### 本地存储机制 -在上传到 Flashduty 之前,数据以明文形式存储在应用沙盒的缓存目录(`Library/Caches`)中。 +在上传到 Flashcat 之前,数据以明文形式存储在应用沙盒的缓存目录(`Library/Caches`)中。 **安全保护:** diff --git a/zh/rum/sdk/ios/performance-impact.mdx b/zh/rum/sdk/ios/performance-impact.mdx index bfba3c6..0595ef3 100644 --- a/zh/rum/sdk/ios/performance-impact.mdx +++ b/zh/rum/sdk/ios/performance-impact.mdx @@ -1,12 +1,12 @@ --- title: "iOS SDK 性能影响" -description: "了解 Flashduty iOS RUM SDK 对应用 CPU、内存、启动时间、包大小和网络使用的影响,以及性能优化建议。" +description: "了解 Flashcat iOS RUM SDK 对应用 CPU、内存、启动时间、包大小和网络使用的影响,以及性能优化建议。" keywords: ["iOS SDK", "性能影响", "RUM", "性能优化", "内存使用", "CPU"] --- ## 概述 -在将任何 SDK 集成到 iOS 应用时,了解其性能影响对于维护良好的用户体验至关重要。Flashduty RUM SDK 在设计时以最小化性能开销为目标,并提供透明的测量数据,帮助您评估 SDK 是否符合应用的性能预算。 +在将任何 SDK 集成到 iOS 应用时,了解其性能影响对于维护良好的用户体验至关重要。Flashcat RUM SDK 在设计时以最小化性能开销为目标,并提供透明的测量数据,帮助您评估 SDK 是否符合应用的性能预算。 SDK 采用异步处理机制,所有数据处理都在后台队列中进行,不会阻塞主线程。 @@ -63,12 +63,12 @@ SDK 初始化过程经过优化,对应用启动时间的影响控制在亚毫 SDK 采用模块化设计,您可以根据需要只引入必要的功能模块: -| 依赖名称 | Import 名称 | 说明 | -| --- | --- | --- | -| `FlashcatCore` | `DatadogCore` | 核心功能(必需) | -| `FlashcatRUM` | `DatadogRUM` | RUM 监控 | -| `FlashcatTrace` | `DatadogTrace` | 链路追踪 | -| `FlashcatWebViewTracking` | `DatadogWebViewTracking` | WebView 追踪 | +| 模块 | 说明 | +| --- | --- | +| `FlashcatCore` | 核心功能(必需) | +| `FlashcatRUM` | RUM 监控 | +| `FlashcatTrace` | 链路追踪 | +| `FlashcatWebView` | WebView 追踪 | 只引入必要的模块可以最小化对包大小的影响。 diff --git a/zh/rum/sdk/ios/sdk-integration.mdx b/zh/rum/sdk/ios/sdk-integration.mdx index fc99112..b0b96b3 100644 --- a/zh/rum/sdk/ios/sdk-integration.mdx +++ b/zh/rum/sdk/ios/sdk-integration.mdx @@ -5,73 +5,26 @@ keywords: ["RUM", "iOS SDK", "用户监控", "前端监控"] --- -Flashduty iOS RUM SDK 支持 **iOS 12.0、iPadOS 12.0、tvOS 12.0** 及以上版本。通过集成 SDK,您可以实时监控 iOS 应用的性能、错误和用户行为。 +iOS RUM SDK 支持 **iOS 12.0、iPadOS 12.0、tvOS 12.0** 及以上版本。通过集成 SDK,您可以实时监控 iOS 应用的性能、错误和用户行为。 - -**关于依赖和包名的说明** - -Flashduty iOS SDK 完全兼容 Datadog 开源协议。在 Swift Package Manager 或 CocoaPods 中添加依赖时使用 `FlashcatCore`、`FlashcatRUM` 等名称,但在代码中 import 时使用 `DatadogCore`、`DatadogRUM` 等模块名。您可以无缝复用 Datadog 生态的文档、示例和最佳实践,同时享受 Flashduty 平台的服务。 - - - ## 接入步骤 -Flashduty iOS SDK 支持 Swift Package Manager 和 CocoaPods 两种安装方式: - - - +Flashcat iOS SDK 通过 Swift Package Manager 安装: 1. 在 Xcode 中,打开您的项目,选择 **File > Add Package Dependencies** - -2. 在搜索栏中输入 Flashduty SDK 的 Git 仓库 URL: +2. 在搜索栏中输入 Flashcat SDK 的 Git 仓库 URL: ``` - https://github.com/flashcatcloud/fc-sdk-ios + https://github.com/flashcat-cloud/fc-ios-sdk ``` - -3. 选择版本规则: - - **推荐**:选择 **Up to Next Major Version**,并输入当前最新版本号(如 `0.3.0`) - - 这样可以在保持兼容性的同时获取 bug 修复和小版本更新 - -4. 点击 **Add Package**,等待 Xcode 下载依赖 - -5. 在弹出的 **Choose Package Products** 窗口中,选择需要添加到 Target 的模块: - - `FlashcatCore` - 核心 SDK(必选) - - `FlashcatRUM` - RUM 功能模块(必选) - - `FlashcatWebViewTracking` - WebView 追踪(可选) - - `FlashcatCrashReporting` - 崩溃报告(推荐) - -6. 确保每个模块都关联到正确的 Target,点击 **Add Package** 完成添加 - - - - - -在项目的 `Podfile` 中添加以下依赖: - -```ruby Podfile -pod 'FlashcatCore', '~> 0.3.0' # 核心 SDK(必选) -pod 'FlashcatRUM', '~> 0.3.0' # RUM 功能(必选) - -# 可选模块 -pod 'FlashcatWebViewTracking', '~> 0.3.0' # WebView 追踪 -pod 'FlashcatCrashReporting', '~> 0.3.0' # 崩溃报告 -``` - -然后执行 `pod install`,并使用 `.xcworkspace` 文件打开项目。 - - - - - -**获取最新版本号** - -查看 [SDK 版本发布页面](https://github.com/flashcatcloud/fc-sdk-ios/releases) 获取最新稳定版本。建议固定到具体版本号,避免意外更新。 - - +3. 选择需要的版本或分支(默认发布分支为 public) +4. 在 **Add to Target** 中选择您的应用目标 +5. 添加以下包依赖: + - `FlashcatCore` - 核心 SDK + - `FlashcatRUM` - RUM 功能模块 @@ -86,11 +39,11 @@ pod 'FlashcatCrashReporting', '~> 0.3.0' # 崩溃报告 -在您的 `AppDelegate.swift` 的 `application(_:didFinishLaunchingWithOptions:)` 方法中初始化 SDK: +在您的 `AppDelegate.swift` 的 `application(_:didFinishLaunchingWithOptions:)` 方法中初始化 Flashcat SDK: ```swift AppDelegate.swift import UIKit -import DatadogCore +import FlashcatCore @main class AppDelegate: UIResponder, UIApplicationDelegate { @@ -98,8 +51,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - Datadog.initialize( - with: Datadog.Configuration( + Flashcat.initialize( + with: Flashcat.Configuration( clientToken: "", env: "" ), @@ -122,12 +75,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate { | 状态 | 行为 | |------|------| -| `.granted` | 开始收集数据并发送到 Flashduty | +| `.granted` | 开始收集数据并发送到 Flashcat | | `.pending` | 开始收集和批处理数据,但不发送,等待后续确认 | | `.notGranted` | 不收集任何数据 | -您可以在初始化后通过 `Datadog.set(trackingConsent:)` 动态修改追踪同意状态。 +您可以在初始化后通过 `Flashcat.set(trackingConsent:)` 动态修改追踪同意状态。 @@ -136,7 +89,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { 配置并启用 RUM 功能。建议在 `AppDelegate` 中尽早启用: ```swift AppDelegate.swift -import DatadogRUM +import FlashcatRUM RUM.enable( with: RUM.Configuration( @@ -177,7 +130,7 @@ SDK 将自动开始收集以下数据: 要监控从 `URLSession` 实例发送的网络请求,需要启用 `URLSessionInstrumentation` 并传入您的 delegate 类型: ```swift -import DatadogRUM +import FlashcatRUM URLSessionInstrumentation.enable( with: .init( @@ -208,7 +161,7 @@ let session = URLSession( ## 视图追踪 -Flashduty iOS SDK 支持自动追踪 UIKit 和 SwiftUI 视图。 +Flashcat iOS SDK 支持自动追踪 UIKit 和 SwiftUI 视图。 ### UIKit 视图自动追踪 @@ -222,7 +175,7 @@ UIKit 视图会通过 `DefaultUIKitRUMViewsPredicate` 自动追踪。SDK 会追 ```swift import SwiftUI -import DatadogRUM +import FlashcatRUM struct ProductView: View { var body: some View { @@ -244,7 +197,7 @@ struct ProductView: View { 如果需要更精细的控制,可以手动追踪视图: ```swift -import DatadogRUM +import FlashcatRUM // 开始追踪视图 RUMMonitor.shared().startView( @@ -274,7 +227,7 @@ UIKit 中的用户操作(如点击按钮、切换开关等)会通过 `Defaul ```swift import SwiftUI -import DatadogRUM +import FlashcatRUM struct CheckoutView: View { var body: some View { @@ -295,7 +248,7 @@ struct CheckoutView: View { 手动追踪用户操作: ```swift -import DatadogRUM +import FlashcatRUM RUMMonitor.shared().addAction( type: .tap, @@ -308,10 +261,10 @@ RUMMonitor.shared().addAction( ### 追踪错误 -Flashduty iOS SDK 会自动捕获应用崩溃和未捕获的异常。您也可以手动记录错误: +Flashcat iOS SDK 会自动捕获应用崩溃和未捕获的异常。您也可以手动记录错误: ```swift -import DatadogRUM +import FlashcatRUM RUMMonitor.shared().addError( message: "Network request failed", @@ -346,7 +299,7 @@ RUM.enable( ``` -追踪后台事件可能会产生额外的会话,从而影响计费。如有疑问,请联系 Flashduty 支持团队。 +追踪后台事件可能会产生额外的会话,从而影响计费。如有疑问,请联系 Flashcat 支持团队。 ### 追踪用户信息 @@ -354,9 +307,9 @@ RUM.enable( 您可以为当前会话设置用户信息,便于追踪特定用户的行为: ```swift -import DatadogCore +import FlashcatCore -Datadog.setUserInfo( +Flashcat.setUserInfo( id: "user-123", name: "John Doe", email: "john.doe@example.com", @@ -393,7 +346,7 @@ iOS SDK 确保在用户设备离线时的数据可用性: -在 Swift Package Manager 添加包依赖时,同时添加 `FlashcatWebViewTracking` 模块。 +在 Swift Package Manager 添加包依赖时,同时添加 `FlashcatWebView` 模块。 @@ -401,7 +354,7 @@ iOS SDK 确保在用户设备离线时的数据可用性: 在您的 ViewController 中启用 WebView 追踪: ```swift -import DatadogWebViewTracking +import FlashcatWebView import WebKit let webView = WKWebView() @@ -447,7 +400,7 @@ WebView 中的 Web 页面现在可以与原生应用的 RUM 数据关联起来 - 在 Xcode 控制台中搜索 `Datadog` 关键字,查看 SDK 初始化和数据上报日志。 + 在 Xcode 控制台中搜索 `Flashcat` 关键字,查看 SDK 初始化和数据上报日志。