Monitor applications¶
Consistently monitoring applications allows you to proactively detect issues, troubleshoot performance bottlenecks, and quickly respond to service disruptions, minimizing downtime and improving the overall user experience. To access monitoring information, go to the Applications page and click on the app you want to view.
From here, you can access the following monitoring options:
- Service health: Provides a dashboard that displays memory, CPU, and network usage.
- Activity log: Displays access, runtime, build, and version history logs.
- Tracing: Displays traces from the model or agentic workflow. Search and filter traces, review duration and token usage, and expand spans to view attributes, logs, input, and output.
Resource usage¶
Permissions to view service health
Only users with Owner permissions for the application and DataRobot administrators can access service health.
The Service health tab allows you to monitor usage, service health, and resource consumption for individual applications. Monitoring resource consumption is essential for cost management to ensure that resources are used efficiently, helping optimize cost.
To access application monitoring capabilities, on the Applications page, click the app you want to view and select Service health. From here, you can:
| Element | Description | |
|---|---|---|
| 1 | Range/Resolution | Adjusts the range and resolution of the chart. The options in the Resolution dropdown are based on your Range selection. |
| 2 | Refresh | Instantly refreshes usage information—usage information automatically updates every minute. |
| 3 | Resource usage | Displays average CPU, memory, and network usage for the specified range, as well as live usage values. Click on a tile to visualize usage information in the chart below. |
| 4 | Usage chart | Visualizes usage information over time for the selected usage tile and specified range. For CPU usage, you can also display a line representing the average usage. |
Activity logs¶
Permissions to view logs
Access to activity logs for an application requires Owner or Editor permissions for the application. Sharing the application source does not grant access to activity logs.
DataRobot records the following activity logs for custom applications:
| Activity log | Description |
|---|---|
| Access logs | Displays which users have accessed the application and when. |
| Runtime logs | Displays a real-time record of the application's tasks during execution. |
| Build logs | Displays a history of the application's deployment process. |
| Version history logs | Displays a time-stamped, chronological record of the application's versions. |
To access these activity logs, from the Applications page, click the app you want to view, and select Activity log.
Build and runtime logs¶
From the Build logs and Runtime logs tabs, you can browse logs that detail the history of compiling, building, and executing the custom application. This includes dependency checks, packaging, and any warnings or errors thrown.
Access logs¶
From the Access logs tab, you can monitor the history of users who have opened or operated a custom application.
You can also view access logs directly from an application source. Navigate to Registry > Application sources, locate the application source for your custom application, and expand the dropdown to view the applications built from the source. Then, click the custom application you want to view the access logs from to access a detailed view.
On the Overview tab, scroll down to the Access logs section.
The access logs detail users' visits to the application, including their email, user ID, time of visit, and their role for the application.
Usage logging interval
In addition to the initial access event, every 24 hours of continuous access or use is recorded as an individual visit to the application. For example, when a user opens an application, an access event is logged, then, when that user session exceeds 24 hours of continuous access or use, another access event is logged. This results in two access events logged during a 24-hour and 1-minute custom application visit. In Self-Managed AI Platform environments, this interval is configurable through the CUSTOM_APP_USAGE_METRIC_PUBLISH_MAX_FREQ in the application configuration.
Tracing¶
Required permissions to view tracing
Access to the Tracing tab requires Owner or Editor permissions for the application. Sharing the application source does not grant access to application traces.
The Tracing tab of an application displays traces from a model or agentic workflow. Each trace includes a combined span list and timeline that shows the order and duration of actions carried out by the model or agent. Use the search row to filter traces by last timestamp, status (Success or Alert), and type, including generation type (operational spans or generation-specific spans). Application tracing uses the same interface as deployment tracing.
While developing an agent locally, you can add custom OpenTelemetry spans and attributes (for example, runtime configuration values) so they appear in traces after deployment. For setup steps and code examples, see Add custom tracing to agent.
Traces represent the path taken by a request to a model or agentic workflow. DataRobot uses the OpenTelemetry framework for tracing. A trace follows the entire end-to-end path of a request, from origin to resolution. Each trace contains one or more spans, starting with the root span. The root span represents the entire path of the request and contains a child span for each individual step in the process. The root (or parent) span and each child span share the same Trace ID.
Access and retention
Tracing is available for custom applications, custom and external model deployments, and Workloads. Applications, deployments, and Workloads share the same tracing interface.
Retention is configured at the organization level by a system administrator and applies to all users in the organization. If a policy isn't set explicitly, trial organizations use a 14-day policy and paying organizations use a 30-day policy. Administrators can set retention per signal type (traces, logs, or metrics) to 14, 30, 60, 90, 180, or 360 days.
To view or change your organization's retention settings, see Configure OTel retention.
Traces appear in a list by Root span name. Each entry shows the status of the trace and the timestamp. Select a trace to open the detail pane, which shows high-level metadata for the request alongside a combined span list and timeline.
Depending on the request, the list and detail pane can include the following fields:
| Field | Description |
|---|---|
| Root span name | The name of the root span for the trace. |
| Timestamp | The date and time of the trace. |
| Status | The overall status of the trace, including all spans (for example, Success). The status is Error if any dependent task fails. |
| Trace ID | A unique identifier for the trace. |
| User ID | The user associated with the request, when available. |
| Latency | The time it took for the trace to complete. This value is equal to the duration of the root span and includes all actions represented by child spans. |
| Tokens | Token usage for the trace. |
| Spans | The number of completed spans (actions) included in the trace. |
| Errors | The number of spans in the trace that recorded an error. |
| Cost | If cost data is provided, the total cost of the trace. |
| Prompt | The user prompt related to the trace. |
| Completion | The agent or model response (completion) associated with the prompt for the trace. |
| Tools | The tool or tools called during the request represented by the trace. |
Search and filter traces¶
Use the search row above the trace list to locate traces.
| Filter | Description |
|---|---|
| Last timestamp | Limit traces by the time of the most recent activity in the trace. |
| Status | Filter traces by Success or Alert status. |
| Type | Filter traces by type, including generation type, to distinguish operational spans from generation-specific spans. |
Review spans¶
Select a trace to review its spans. The span list and timeline appear together: each row shows the span name, duration, and token usage, and a timeline chart shows when the span ran relative to the rest of the trace. Expand a parent span to show its child spans. Restricted span appears when you do not have access to the deployment or service associated with the span.
In the span view, filter spans by duration, tokens, name, or status code, or isolate identical spans.
When you select a span, high-level metadata, logs, input, output, and remaining metadata are available on the same page. Formatted text in a span appears alongside attributes. Click the span service or model name to access the deployment or resource (if you have access).
When you expand a span, logs appear with the span attributes, input, and output. The results shown are a subset of the full deployment logs.
Tracing table OTel attributes¶
For Cost, Prompt, Completion, and Tools, DataRobot reads specific span attributes across all spans that belong to the trace. Other fields (such as Timestamp, Latency, and Tokens) come from trace and span metadata rather than these attributes.
| Column | OpenTelemetry mapping |
|---|---|
| Cost | Sums numeric values from the datarobot.moderation.cost attribute on spans in the trace (when that attribute is present). |
| Prompt | Uses the gen_ai.prompt attribute. If more than one span includes gen_ai.prompt, the first value encountered in trace order is shown. |
| Completion | Uses the gen_ai.completion attribute. If more than one span includes gen_ai.completion, the last value encountered in trace order is shown. |
| Tools | Collects every distinct value of the tool_name attribute found on spans in the trace and lists those tool names in the column. |
Attribute keys must match exactly (including the underscore in gen_ai). Names such as genai.prompt or GenAI.prompt are not read for the Prompt and Completion columns.
Automatic instrumentation (including DataRobot agent templates) often sets gen_ai.prompt, gen_ai.completion, and sometimes tool_name. For custom or external models, frameworks differ: tool execution may not emit tool_name even when tools run (for example, some LangGraph callback flows). In that case Prompt and Completion can populate while Tools remains empty until tool_name is configured on a span that runs inside the tool—see Implement tracing.







