Flashduty Docs
中文English
RoadmapAPI官网控制台
中文English
RoadmapAPI官网控制台
  1. Web
  • Introduction
  • On-call
    • Getting Started
      • Quick start
      • FAQ
      • Product Comparison
    • Incidents
      • What is an Incident
      • View Incidents
      • Handle Incidents
      • Escalations and Assignments
      • Custom Fields
      • Custom Actions
      • Alert Noise Reduction
      • Past Incidents
      • Outlier Incidents
      • Status Pages
    • Configure On-call
      • Channels
      • Integrate Alerts
      • Alert Noise Reduction
      • Escalation Rules
      • Label Enrichment
      • Schedules
      • Templates
      • Service Calendars
      • Preferences
      • Alert Routing
      • Silence and Inhibition
      • Filters
      • Notifications
      • Alert Pipeline
    • Advanced Features
      • Referencing Variables
      • Dynamic Assignment
      • Insights
      • War-room
    • Integrations
      • Alerts integration
        • Standard Alert Integration
        • Email Integration
        • Nightingale/FlashCat Integration
        • Prometheus Integration
        • Grafana Integration
        • Zabbix Integration
        • Uptime Kuma Integration
        • Alibaba Cloud ARMS Integration
        • Alibaba Cloud Monitor CM Event Integration
        • Alibaba Cloud Monitor CM Metrics Integration
        • Alibaba Cloud SLS Integration
        • AWS CloudWatch Integration
        • Azure Monitor Integration
        • Baidu Cloud BCM Integration
        • Huawei Cloud CES Integration
        • Influxdata Integration
        • Open Falcon Integration
        • PagerDuty Integration
        • Tencent BlueKing Integration
        • Tencent Cloud CLS Integration
        • Tencent Cloud Monitor CM Integration
        • Tencent Cloud EventBridge
        • OceanBase Integration
        • Graylog Integration
        • Skywalking Integration
        • Sentry Integration
        • Jiankongbao Integration
        • AWS EventBridge Integration
        • Dynatrace Integration
        • Huawei Cloud LTS Integration
        • GCP Integration
        • Splunk Alert Events Integration
        • AppDynamics Alert Integration
        • SolarWinds Alert Events Integration
        • Volcengine CM Alert Events Integration
        • Volcengine CM Event Center Integration
        • Volcengine TLS Integration
        • OpManager Integration
        • Meraki Integration
        • Keep Integration
        • ElastAlert2 Alert Integration
        • StateCloud Alert Events
        • Guance Alert Events
        • Zilliz Alert Events
        • Huawei Cloud APM Alerts
        • zstack integration
        • Monit Alert Integration
        • RUM Alert Integration
      • Change integration
        • Standard Change Event
        • Jira Issue Events
      • IM integration
        • Feishu (Lark) Integration Guide
        • Dingtalk Integration
        • WeCom Integration
        • Slack Integration
        • Microsoft Teams Integration
      • Single Sign-On
        • Authing Integration
        • Keycloak Guide
        • OpenLDAP Guide
      • Webhooks
        • Alert webhook
        • Incident webhook
        • Costom action
        • ServiceNow Sync
        • Jira Sync
      • Other
        • Link Integration
  • RUM
    • Getting Started
      • Application Management
      • Introduction
      • Quick Start
    • SDK Integration
      • Android
        • Data Collection
        • SDK Integration
        • Advanced Configuration
        • Compatibility
      • iOS
        • Data Collection
        • Compatibility
        • SDK Integration
        • Advanced Configuration
      • Web
        • Data Collection
        • SDK Integration
        • FAQ
        • Advanced Configuration
        • Compatibility
    • Session Explorer
      • Overview
      • Data Query
    • Analysis Dashboard
      • Web
      • Native
    • Performance Monitoring
      • Metrics
      • Performance Optimize
      • Overview
      • Performance Analysis
    • Error Tracking
      • Issues
      • Error Grouping
      • Source Mapping
      • Overview
      • Issue Status
      • Issue Alerting
      • Error Reporting
        • iOS
        • Android
        • Web
    • Best Practice
      • Distributed Tracing
    • Session Replay
      • View Session Replay
      • SDK Configuration
      • Overview
      • Privacy Protection
    • Others
      • Data Collection
      • Terminology
      • Data Security
  • Monitors
    • Getting Started
      • Introduction
      • Quick Start
    • Alert Rules
      • Prometheus
      • ElasticSearch
      • Loki
      • ClickHouse
      • MySQL
      • Oracle
      • PostgreSQL
      • Aliyun SLS
      • VictoriaLogs
    • FAQ
      • FAQ
  • Platform
    • Teams and Members
    • Permissions
    • Single Sign-On
  • Terms
    • Terms of Service
    • User Agreement/Privary Policy
    • SLA
    • Data Security
中文English
RoadmapAPI官网控制台
中文English
RoadmapAPI官网控制台
  1. Web

Data Collection

Overview#

Flashcat Web RUM SDK generates events with associated metrics and attributes. Each RUM event includes default attributes, such as the page URL corresponding to the event (view.url) and user information like device type (device.type) and country (geo.country).
Additionally, different event types have specific additional metrics and attributes. For example, the view.loading_time metric is associated with view events, while the resource.method attribute is associated with resource events.

Default Attributes#

Flashcat Web RUM SDK automatically captures the following default attributes, which apply to all RUM event types.

Common Core Attributes#

AttributeTypeDescription
dateIntegerEvent timestamp (in milliseconds, epoch milliseconds).
typeStringEvent type (such as session, view, resource, error, action).
application.idStringUnique application identifier.
serviceStringService name that generated this event.
envStringApplication environment name (such as prod, dev, staging).
versionStringApplication version.
sdk_versionStringFlashcat RUM SDK version.

Device#

The following device-related attributes are automatically attached to all events collected by Flashcat:
AttributeTypeDescription
device.typeStringDevice type (such as Desktop, Mobile, Tablet, TV, Other).
device.brandStringDevice brand (such as Apple, Samsung, Huawei).
device.modelStringDevice model (such as iPhone, iPad).
device.nameStringDevice commercial name.

Operating System#

The following OS-related attributes are automatically attached to all events collected by Flashcat:
AttributeTypeDescription
os.nameStringOperating system name (such as Mac OS, Windows, iOS).
os.versionStringOS version number (such as 10.15.7, 11.0).
os.version_majorStringOS major version number (such as 10, 11).

Browser#

The following browser-related attributes are automatically attached to all Web RUM events:
AttributeTypeDescription
browser.nameStringBrowser name (such as Chrome, Firefox, Safari, Edge).
browser.versionStringBrowser version number (such as 91.0.4472.124).
browser.version_majorStringBrowser major version number (such as 91).
browser.user_agentStringUser Agent string.
browser.viewport.widthNumberBrowser viewport width (pixels).
browser.viewport.heightNumberBrowser viewport height (pixels).

Geolocation#

The following attributes relate to the geographic location of the IP address:
AttributeTypeDescription
geo.countryStringCountry name.
geo.country_iso_codeStringCountry ISO code (such as US, CN).
geo.country_subdivisionStringFirst-level administrative division of the country (such as US states, Chinese provinces).
geo.continent_codeStringContinent ISO code (such as EU, AS, NA).
geo.continentStringContinent name.
geo.cityStringCity name.
Note: Geolocation information is inferred by the Flashcat backend from the client IP address and does not collect precise GPS location on the client.

Global User Attributes#

You can enable user tracking on all RUM events to correlate user sessions and simplify troubleshooting. User attributes are optional, but it's recommended to provide the following:
AttributeTypeDescription
usr.idStringUnique user identifier.
usr.nameStringUser-friendly name, displayed by default in RUM UI.
usr.emailStringUser email address. Email is displayed if no username is provided.
You can also add custom user attributes, such as usr.plan, usr.role, etc.
To set user information, see Tracking User Information.

Event-Specific Attributes#

Different event types have specific attributes and metrics.

Session Attributes#

AttributeTypeDescription
session.idStringUnique session identifier.
session.typeStringSession type (such as user, synthetic).
session.is_activeBooleanWhether the session is active.
session.initial_view.idStringID of the initial view in the session.
session.initial_view.urlStringURL of the initial view in the session.
session.initial_view.nameStringName of the initial view in the session.
session.last_view.idStringID of the last view in the session.
session.last_view.urlStringURL of the last view in the session.
session.last_view.nameStringName of the last view in the session.
session.has_replayBooleanWhether session replay is enabled for the session.

View Time Metrics#

Flashcat RUM collects all performance metrics from the Navigation Timing API, as well as metrics related to Core Web Vitals.
AttributeTypeDescription
view.time_spentNumber (nanoseconds)Time user spent on this view.
view.loading_timeNumber (nanoseconds)Time required for page to fully load (triggered at loadEventEnd).
view.largest_contentful_paintNumber (nanoseconds)Largest Contentful Paint (LCP), rendering time of largest visible content element in viewport.
view.first_input_delayNumber (nanoseconds)First Input Delay (FID), time from user's first interaction with page to browser's actual response.
view.cumulative_layout_shiftNumberCumulative Layout Shift (CLS), quantifies unexpected movement of visible elements within viewport.
view.interaction_to_next_paintNumber (nanoseconds)Interaction to Next Paint (INP), measures latency of all user interactions with page.
view.first_contentful_paintNumber (nanoseconds)First Contentful Paint (FCP), time when browser first renders any text, image, non-blank canvas, or SVG.
view.dom_interactiveNumber (nanoseconds)Moment parser completes work on main document (domInteractive).
view.dom_content_loadedNumber (nanoseconds)Time when initial HTML document is fully loaded and parsed, without waiting for stylesheets, images, and subframes to finish loading (domContentLoadedEventEnd).
view.dom_completeNumber (nanoseconds)Time when page and all subresources are ready (domComplete).
view.load_eventNumber (nanoseconds)Time when load event is triggered (loadEventEnd), indicating page is fully loaded.
view.first_byteNumber (nanoseconds)Time to First Byte (TTFB), time from user initiating page load to browser receiving first byte of HTML document (responseStart).
view.redirect.durationNumber (nanoseconds)Time spent on redirects (redirectEnd - redirectStart).
view.dns.durationNumber (nanoseconds)Time spent on DNS lookup (domainLookupEnd - domainLookupStart).
view.connect.durationNumber (nanoseconds)Time spent establishing server connection (connectEnd - connectStart).
view.ssl.durationNumber (nanoseconds)Time spent on TLS handshake (connectEnd - secureConnectionStart).
view.request.durationNumber (nanoseconds)Time spent requesting HTML document (responseStart - requestStart).
view.response.durationNumber (nanoseconds)Time spent downloading HTML document (responseEnd - responseStart).
view.in_foreground_periods.countNumberNumber of times view was in foreground.
view.in_foreground_periods.durationNumber (nanoseconds)Total time view was in foreground.

View Attributes#

AttributeTypeDescription
view.idStringUnique view identifier.
view.urlStringURL of the view.
view.nameStringCustomizable view name.
view.referrerStringPrevious page URL (referrer).
view.action.countNumberNumber of user actions collected in this view.
view.error.countNumberNumber of errors collected in this view.
view.resource.countNumberNumber of resources collected in this view.
view.long_task.countNumberNumber of long tasks collected in this view.
view.is_activeBooleanWhether the view is active.

Resource Time Metrics#

Flashcat RUM collects detailed network timing information from the Resource Timing API for individual resource loading.
AttributeTypeDescription
resource.durationNumber (nanoseconds)Total time required to load the resource.
resource.sizeNumber (bytes)Resource size.
resource.connect.durationNumber (nanoseconds)Time required to establish server connection (connectEnd - connectStart).
resource.ssl.durationNumber (nanoseconds)Time required for TLS handshake. This metric doesn't appear if last request wasn't via HTTPS.
resource.dns.durationNumber (nanoseconds)Time required for DNS resolution (domainLookupEnd - domainLookupStart).
resource.redirect.durationNumber (nanoseconds)Time required for subsequent HTTP requests (redirectEnd - redirectStart).
resource.first_byte.durationNumber (nanoseconds)Time waiting to receive first response byte (responseStart - requestStart).
resource.download.durationNumber (nanoseconds)Time downloading response (responseEnd - responseStart).
resource.render_blocking_statusStringResource render blocking status (blocking, non-blocking).
resource.first_partyBooleanWhether it's a first-party resource (same domain as app).

Resource Attributes#

AttributeTypeDescription
resource.idStringUnique resource identifier.
resource.typeStringResource type (such as xhr, fetch, css, js, image, font, media).
resource.methodStringHTTP method (such as GET, POST, PUT, DELETE).
resource.status_codeNumberHTTP response status code.
resource.urlStringResource URL.
resource.url_hostStringHost portion of the URL.
resource.url_pathStringPath portion of the URL.
resource.url_queryObjectURL query parameters, parsed as key-value pairs.
resource.url_schemeStringURL protocol (such as https, http).
resource.provider.nameStringResource provider name, defaults to unknown.
resource.provider.domainStringResource provider domain.
resource.provider.typeStringResource provider type (such as first-party, cdn, ad, analytics, social).

GraphQL Attributes#

If GraphQL request tracking is enabled, the following attributes are attached to resource events:
AttributeTypeDescription
resource.graphql.operation_typeStringGraphQL operation type (query, mutation, subscription).
resource.graphql.operation_nameStringGraphQL operation name (if provided in request).
resource.graphql.variablesStringGraphQL variables sent with request.
resource.graphql.payloadStringGraphQL query (limited to 32 KB, only available when trackPayload is enabled).
resource.graphql.errors_countNumberNumber of errors returned in GraphQL response (only available when trackResponseErrors is enabled).
resource.graphql.errorsArrayGraphQL errors array, including message, code, locations, and path (only available when trackResponseErrors is enabled).

Long Task Time Attributes#

Long tasks are tasks that block the main thread for 50 milliseconds or longer. These tasks cause high input latency, slow interactions, or stuttering animations/scrolling.
AttributeTypeDescription
long_task.durationNumber (nanoseconds)Duration of the long task.
long_task.is_frozen_frameBooleanWhether it's a frozen frame (duration exceeds 700ms).

Error Attributes#

Frontend errors are collected through RUM. Error messages and stack traces (if available) are included.
AttributeTypeDescription
error.idStringUnique error identifier.
error.sourceStringError source (such as console, network, source, logger, agent, webview, custom, report).
error.typeStringError type (error code in some cases).
error.messageStringConcise, readable single-line error message.
error.stackStringError stack trace or supplemental information.
error.issue_idStringUnique error issue identifier (same errors are aggregated to the same issue).
error.fingerprintStringFingerprint used to uniquely identify the error.
error.handlingStringError handling method (handled, unhandled).
error.handling_stackStringStack trace when error was handled.
error.causesArrayInformation about other errors that caused this error.

Source Errors#

Source errors contain code-level information about the error. For more information on different error types, see the MDN documentation.
AttributeTypeDescription
error.typeStringError type (error code in some cases).

Network Errors#

Network errors contain information about failed HTTP requests. The following additional attributes are collected:
AttributeTypeDescription
error.resource.status_codeNumberHTTP response status code.
error.resource.methodStringHTTP method (such as GET, POST).
error.resource.urlStringResource URL.
error.resource.url_hostStringHost portion of the URL.
error.resource.url_pathStringPath portion of the URL.
error.resource.url_schemeStringURL protocol.
error.resource.provider.nameStringResource provider name, defaults to unknown.
error.resource.provider.domainStringResource provider domain.
error.resource.provider.typeStringResource provider type (such as first-party, cdn, ad, analytics).

Action Time Attributes#

AttributeTypeDescription
action.loading_timeNumber (nanoseconds)Action loading time. Calculation method in Tracking User Actions documentation.
action.long_task.countNumberNumber of long tasks triggered by this action.
action.resource.countNumberNumber of resources triggered by this action.
action.error.countNumberNumber of errors triggered by this action.

Action Attributes#

AttributeTypeDescription
action.idStringUnique user action identifier (UUID).
action.typeStringUser action type (such as click, custom). For custom user actions, set to custom.
action.target.nameStringElement user interacted with. Only for automatically collected actions.
action.nameStringUser-friendly name (such as Click on #checkout). For custom user actions, the action name given in API call.

Frustration Signals#

Flashcat RUM automatically detects user frustration signals to help you understand issues users encounter in the app.
AttributeTypeDescription
session.frustration.countNumberTotal number of frustration signals in the session.
view.frustration.countNumberTotal number of frustration signals in the view.
action.frustration.type:dead_clickStringDead click detected by RUM SDK (click with no response).
action.frustration.type:rage_clickStringRage click detected by RUM SDK (consecutive rapid clicks).
action.frustration.type:error_clickStringError click detected by RUM SDK (click triggers error).

UTM Attributes#

If URL contains UTM parameters, Flashcat RUM automatically captures the following attributes for tracking marketing campaigns:
AttributeTypeDescription
view.url_query.utm_sourceStringParameter in URL tracking traffic source.
view.url_query.utm_mediumStringParameter in URL tracking which channel traffic came from.
view.url_query.utm_campaignStringParameter in URL identifying specific marketing campaign associated with view.
view.url_query.utm_contentStringParameter in URL identifying specific element user clicked in marketing campaign.
view.url_query.utm_termStringParameter in URL tracking keywords user searched to trigger given campaign.

Data Storage#

Before uploading to Flashcat, data is temporarily stored in plain text in the browser's local storage (LocalStorage or SessionStorage). The SDK follows these rules:
When network is available, data is sent in batches.
If network is unavailable or data upload fails, batches are retained until successfully sent.
Data exceeding a certain time limit is automatically cleaned up to avoid occupying excessive storage space.
This means data won't be lost even if users use your app while offline.
Note: Sensitive data should not be included in RUM events, or should be obfuscated or filtered before sending through the beforeSend callback.

Data Upload#

Flashcat Web RUM SDK uploads collected events in batches to the server to optimize network performance and reduce impact on user experience.

Batching Mechanism#

1.
Event Collection: SDK adds events to in-memory batch buffer.
2.
Batch Upload: Batches are uploaded when one of the following conditions is met:
Number of events in batch reaches threshold
Batch size reaches threshold
Periodic upload (e.g., every 10 seconds)
Page unload (beforeunload event)

Upload Strategy#

Beacon API: Prioritizes using Beacon API to send data, ensuring data isn't lost during page unload.
XHR/Fetch Fallback: If Beacon API is unavailable, uses XMLHttpRequest or Fetch API.
Retry on Failure: If upload fails, batches are retained in local storage until successfully sent.

Data Compression#

Before upload, Flashcat SDK compresses batch data to reduce network traffic and upload time.

Privacy and Compliance#

Flashcat Web RUM SDK is designed with privacy and data protection in mind:
IP Address Anonymization: SDK can be configured to anonymize IP addresses.
Sensitive Data Filtering: Use beforeSend callback to filter or obfuscate sensitive information.
Cookie and Storage Control: Can configure whether to use cookies and local storage.
GDPR/CCPA Compliance: Supports user privacy opt-out mechanism.
For more information on privacy configuration, see Advanced Configuration.

More Information#

Web SDK Integration: Learn how to integrate Flashcat RUM SDK in Web apps
Web SDK Advanced Configuration: Learn how to configure advanced SDK features
RUM Data Collection: Learn about RUM general data collection mechanism

添加官方技术支持微信

在这里,获得使用上的任何帮助,快速上手FlashDuty

微信扫码交流
修改于 2026-01-16 08:33:40
上一页
Advanced Configuration
下一页
SDK Integration
Built with