vunet_flutter_plugin_dio
Dio HTTP client instrumentation for vuTelemetry Flutter.
App developers import this package for Dio spans. Shared HTTP recording APIs used
by this integration live on
package:vunet_flutter_plugin/http_instrumentation.dart (for official
integrations and advanced custom adapters). Day-to-day RUM APIs remain on
package:vunet_flutter_plugin/flutter_sdk.dart.
Setup
- Initialize the core SDK with
VuTelemetry.initialize. - Add this package alongside
vunet_flutter_pluginanddio. - Attach instrumentation per Dio instance:
import 'package:dio/dio.dart';
import 'package:vunet_flutter_plugin_dio/vunet_flutter_plugin_dio.dart';
final dio = Dio();
attachInstrumentedDio(dio);
Or add the interceptor yourself:
dio.interceptors.add(OtelDioInterceptor());
instrumentations.http in core does not cover Dio — attach per instance as
shown above.
Timing phases
Dio spans report dns (+ connect when you use attachInstrumentedDio or
otherwise wire createInstrumentedHttpClient), total, and call.
ttfb and download are not supported at the interceptor layer: Dio has no
headers-received / first-byte hook comparable to package:http's send()
return, and inventing one from interceptor timing would mislabel nearly the full
round-trip. Use total / call for end-to-end latency.
Error classification
Dio failures set http.error.category via classifyDioException, which maps
DioExceptionType to the HTTP RUM catalog (timeout, ssl, http_client,
io, dns, unknown). The interceptor passes the result to
HttpSpanRecorder.onError as errorCategory.
Core SDK paths (package:http, HttpOverrides) do not pass
errorCategory; they rely on HttpSpanRecorder.classifyError, which only
understands dart:io errors. Dio-specific classification lives in this package
so the core plugin does not depend on Dio types.
Nested DioException.error values (for example an inner SocketException) are
classified by delegating to HttpSpanRecorder.classifyError.
License
VuNet Systems Ltd. proprietary and confidential (LicenseRef-VuNet-Proprietary). See LICENSE.
Libraries
- vunet_flutter_plugin_dio
- Dio instrumentation for the vuTelemetry Flutter RUM SDK.