React_native Attributes

11 attributes in this category.11 stable

11 attributes

Stable Attributes

react_native.architecture

stringScrub: ManualVisibility: PublicOTel: False

The React Native architecture the app is running on. `new` for the New Architecture, where native modules are resolved as TurboModules through `TurboModuleRegistry`, `legacy` for the Old Architecture bridge.

Examplesnewlegacy
Changelog
v0.24.0#564Added react_native.architecture attribute
Raw JSON
{
  "key": "react_native.architecture",
  "brief": "The React Native architecture the app is running on. `new` for the New Architecture, where native modules are resolved as TurboModules through `TurboModuleRegistry`, `legacy` for the Old Architecture bridge.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "new",
    "legacy"
  ],
  "alias": [
    "turbo_module.arch"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.architecture attribute"
    }
  ]
}

react_native.module.call.count

integerScrub: ManualVisibility: PublicOTel: False

The number of native module calls observed during the lifetime of the span.

Changelog
v0.24.0#564Added react_native.module.call.count attribute
Raw JSON
{
  "key": "react_native.module.call.count",
  "brief": "The number of native module calls observed during the lifetime of the span.",
  "type": "integer",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    42
  ],
  "alias": [
    "turbo_module.total_call_count",
    "turbo_modules.total_call_count"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.call.count attribute"
    }
  ]
}

react_native.module.call.distinct_count

integerScrub: ManualVisibility: PublicOTel: False

The number of distinct native module and method pairs called during the lifetime of the span. Useful as a cardinality signal when the per-method breakdown has been truncated.

Changelog
v0.24.0#564Added react_native.module.call.distinct_count attribute
Raw JSON
{
  "key": "react_native.module.call.distinct_count",
  "brief": "The number of distinct native module and method pairs called during the lifetime of the span. Useful as a cardinality signal when the per-method breakdown has been truncated.",
  "type": "integer",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    7
  ],
  "alias": [
    "turbo_module.unique_methods",
    "turbo_modules.unique_methods"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.call.distinct_count attribute"
    }
  ]
}

react_native.module.duration.max

doubleScrub: ManualVisibility: PublicOTel: False

The duration of the slowest single native module call observed during the lifetime of the span, in milliseconds.

Examples512.5
Changelog
v0.24.0#564Added react_native.module.duration.max attribute
Raw JSON
{
  "key": "react_native.module.duration.max",
  "brief": "The duration of the slowest single native module call observed during the lifetime of the span, in milliseconds.",
  "type": "double",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    512.5
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.duration.max attribute"
    }
  ]
}

react_native.module.duration.total

doubleScrub: ManualVisibility: PublicOTel: False

The combined wall-clock duration of all native module calls observed during the lifetime of the span, in milliseconds. Calls overlap, so this can exceed the span duration.

Changelog
v0.24.0#564Added react_native.module.duration.total attribute
Raw JSON
{
  "key": "react_native.module.duration.total",
  "brief": "The combined wall-clock duration of all native module calls observed during the lifetime of the span, in milliseconds. Calls overlap, so this can exceed the span duration.",
  "type": "double",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    128.45
  ],
  "alias": [
    "turbo_module.total_duration_ms",
    "turbo_modules.total_duration_ms"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.duration.total attribute"
    }
  ]
}

react_native.module.error.count

integerScrub: ManualVisibility: PublicOTel: False

The number of native module calls that failed during the lifetime of the span. A call counts as failed when it threw, rejected, or — on the Old Architecture bridge only — invoked its failure callback.

Changelog
v0.24.0#564Added react_native.module.error.count attribute
Raw JSON
{
  "key": "react_native.module.error.count",
  "brief": "The number of native module calls that failed during the lifetime of the span. A call counts as failed when it threw, rejected, or — on the Old Architecture bridge only — invoked its failure callback.",
  "type": "integer",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    2
  ],
  "alias": [
    "turbo_module.total_error_count",
    "turbo_modules.total_error_count"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.error.count attribute"
    }
  ]
}

react_native.module.kind

stringScrub: ManualVisibility: PublicOTel: False

Whether the native module call completed synchronously or reported completion later through a Promise or a callback. One of `sync` or `async`.

Examplessyncasync
Changelog
v0.24.0#564Added react_native.module.kind attribute
Raw JSON
{
  "key": "react_native.module.kind",
  "brief": "Whether the native module call completed synchronously or reported completion later through a Promise or a callback. One of `sync` or `async`.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "sync",
    "async"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.kind attribute"
    }
  ]
}

react_native.module.method

stringScrub: ManualVisibility: PublicOTel: False

The name of the native module method that was called.

Scrubbing ReasonNative module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable
ExamplesgetUniqueId
Changelog
v0.24.0#564Added react_native.module.method attribute
Raw JSON
{
  "key": "react_native.module.method",
  "brief": "The name of the native module method that was called.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "getUniqueId"
  ],
  "alias": [
    "turbo_module.method"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.method attribute"
    }
  ]
}

react_native.module.name

stringScrub: ManualVisibility: PublicOTel: False

The name of the native module the call was dispatched to. On the New Architecture this is the TurboModule name, on the Old Architecture the `NativeModules` key.

Scrubbing ReasonNative module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable
ExamplesRNDeviceInfo
Changelog
v0.24.0#564Added react_native.module.name attribute
Raw JSON
{
  "key": "react_native.module.name",
  "brief": "The name of the native module the call was dispatched to. On the New Architecture this is the TurboModule name, on the Old Architecture the `NativeModules` key.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "RNDeviceInfo"
  ],
  "alias": [
    "turbo_module.name"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.name attribute"
    }
  ]
}

react_native.module.top.duration

doubleScrub: ManualVisibility: PublicOTel: False

The total duration attributed to `react_native.module.top.name`, in milliseconds.

Changelog
v0.24.0#564Added react_native.module.top.duration attribute
Raw JSON
{
  "key": "react_native.module.top.duration",
  "brief": "The total duration attributed to `react_native.module.top.name`, in milliseconds.",
  "type": "double",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    87.25
  ],
  "alias": [
    "turbo_module.top_module_duration_ms"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.top.duration attribute"
    }
  ]
}

react_native.module.top.name

stringScrub: ManualVisibility: PublicOTel: False

The native module and method that accounted for the most total duration during the lifetime of the span, formatted as `<module>.<method>`.

Scrubbing ReasonNative module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable
ExamplesRNDeviceInfo.getUniqueId
Changelog
v0.24.0#564Added react_native.module.top.name attribute
Raw JSON
{
  "key": "react_native.module.top.name",
  "brief": "The native module and method that accounted for the most total duration during the lifetime of the span, formatted as `<module>.<method>`.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "RNDeviceInfo.getUniqueId"
  ],
  "alias": [
    "turbo_module.top_module"
  ],
  "changelog": [
    {
      "version": "0.24.0",
      "prs": [
        564
      ],
      "description": "Added react_native.module.top.name attribute"
    }
  ]
}