Files
mlflow--mlflow/mlflow/protos/databricks_tracing.proto
2026-07-13 13:22:34 +08:00

951 lines
28 KiB
Protocol Buffer

// This file contains the proto definition for communicating with the Databricks tracking server.
// The message definition should be kept in (mostly) sync with the MLflow service definition.
syntax = "proto2";
package mlflow.databricks;
import "assessments.proto";
import "databricks.proto";
import "databricks_exception_with_details.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
import "opentelemetry/proto/trace/v1/trace.proto";
import "scalapb/scalapb.proto";
option py_generic_services = true;
service DatabricksTrackingService {
rpc createTraceInfo(CreateTraceInfo) returns (TraceInfo) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/traces/{location_id}/{trace_info.trace_id}/info"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Create Trace Info v4"
};
}
// Get complete traces with spans for given trace identifiers.
rpc batchGetTraces(BatchGetTraces) returns (BatchGetTraces.Response) {
option (rpc) = {
endpoints: [
{
method: "GET"
path: "/mlflow/traces/{location_id}/batchGet"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Get Traces V4"
};
}
// Get Trace Info
rpc getTraceInfo(GetTraceInfo) returns (GetTraceInfo.Response) {
option (rpc) = {
endpoints: [
{
method: "GET"
path: "/mlflow/traces/{location}/{trace_id}/info"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Get TraceInfo"
};
}
// Set a tag on a trace. Tags are mutable and can be updated as desired.
rpc setTraceTag(SetTraceTag) returns (SetTraceTag.Response) {
option (rpc) = {
endpoints: [
{
method: "PATCH"
path: "/mlflow/traces/{location_id}/{trace_id}/tags"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Set Trace Tag"
};
}
// Delete a tag from a trace.
rpc deleteTraceTag(DeleteTraceTag) returns (DeleteTraceTag.Response) {
option (rpc) = {
endpoints: [
{
method: "DELETE"
path: "/mlflow/traces/{location_id}/{trace_id}/tags/{key}"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Delete Trace Tag"
};
}
// Search traces
rpc searchTraces(SearchTraces) returns (SearchTraces.Response) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/traces/search"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Search Traces"
};
}
// Long-running equivalent of searchTraces. Returns a SearchTracesOperation
// immediately; callers poll getSearchTracesOperation until done is true.
rpc searchTracesLongRunning(SearchTracesLongRunning) returns (SearchTracesOperation) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/traces/search-long-running"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Search Traces Long Running"
};
}
// Poll a long-running search-traces Operation.
rpc getSearchTracesOperation(GetOperationRequest) returns (SearchTracesOperation) {
option (rpc) = {
endpoints: [
{
method: "GET"
path: "/mlflow/traces/search/operations/{name}"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Get Operation"
};
}
// =============================================================================
// Enablement RPCs
// =============================================================================
rpc createTraceUCStorageLocation(CreateTraceUCStorageLocation) returns (CreateTraceUCStorageLocation.Response) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/traces/location"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Create Trace UC Storage Location"
};
}
rpc linkExperimentToUCTraceLocation(LinkExperimentToUCTraceLocation) returns (LinkExperimentToUCTraceLocation.Response) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/traces/{experiment_id}/link-location"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Link Experiment to UC Trace Location"
};
}
rpc unlinkExperimentToUCTraceLocation(UnLinkExperimentToUCTraceLocation) returns (UnLinkExperimentToUCTraceLocation.Response) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/traces/{experiment_id}/unlink-location"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Unlink Experiment to UC Trace Location"
};
}
rpc getLocation(GetLocation) returns (GetLocation.Response) {
option (rpc) = {
endpoints: [
{
method: "GET"
path: "/mlflow/tracing/locations/{location_id}"
since: {
major: 5
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Get Location"
};
}
rpc createLocation(CreateLocation) returns (CreateLocation.Response) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/tracing/locations"
since: {
major: 5
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Create Location"
};
}
rpc linkTraceLocation(LinkTraceLocation) returns (LinkTraceLocation.Response) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/experiments/{experiment_id}/trace-location:link"
since: {
major: 5
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Link Trace Location"
};
}
// =============================================================================
// Assessment RPCs
// =============================================================================
// Create an assessment associated with a trace.
rpc createAssessment(CreateAssessment) returns (CreateAssessment.Response) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/traces/{location_id}/{assessment.trace_id}/assessments"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Create Assessment"
};
}
// Get an assessment.
rpc getAssessment(GetAssessment) returns (GetAssessment.Response) {
option (rpc) = {
endpoints: [
{
method: "GET"
path: "/mlflow/traces/{location_id}/{trace_id}/assessments/{assessment_id}"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Get Assessment"
};
}
// Update an assessment.
rpc updateAssessment(UpdateAssessment) returns (UpdateAssessment.Response) {
option (rpc) = {
endpoints: [
{
method: "PATCH"
path: "/mlflow/traces/{location_id}/{assessment.trace_id}/assessments/{assessment.assessment_id}"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Update Assessment"
};
}
// Delete an assessment.
rpc deleteAssessment(DeleteAssessment) returns (DeleteAssessment.Response) {
option (rpc) = {
endpoints: [
{
method: "DELETE"
path: "/mlflow/traces/{location_id}/{trace_id}/assessments/{assessment_id}"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Delete Assessment"
};
}
// =============================================================================
// Trace-to-Run Linking RPCs
// =============================================================================
// Link traces to a run by creating internal trace-to-run relationships.
// This API allows associating multiple traces with a single run for evaluation and labeling workflows.
rpc batchLinkTraceToRun(BatchLinkTraceToRun) returns (BatchLinkTraceToRun.Response) {
option (rpc) = {
endpoints: [
{
method: "POST"
path: "/mlflow/traces/{location_id}/link-to-run/batchCreate"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Link Traces to Run"
};
}
// Unlink traces from a run by removing the internal trace-to-run relationships.
// This API allows batch edit of relationship across multiple traces with a single run.
rpc batchUnlinkTraceFromRun(BatchUnlinkTraceFromRun) returns (BatchUnlinkTraceFromRun.Response) {
option (rpc) = {
endpoints: [
{
method: "DELETE"
path: "/mlflow/traces/{location_id}/unlink-from-run/batchDelete"
since: {
major: 4
minor: 0
}
}
]
visibility: PUBLIC_UNDOCUMENTED
rpc_doc_title: "Unlink Traces from Run"
};
}
}
message UCSchemaLocation {
optional string catalog_name = 1;
optional string schema_name = 2;
// spans table name, only for output
optional string otel_spans_table_name = 3;
// logs table name, only for output
optional string otel_logs_table_name = 4;
}
message UcTablePrefixLocation {
optional string catalog_name = 1;
optional string schema_name = 2;
optional string table_prefix = 3;
optional string spans_table_name = 4;
optional string logs_table_name = 5;
optional string metrics_table_name = 6;
optional string location_id = 7;
optional string annotations_table_name = 8;
}
message MlflowExperimentLocation {
// MLflow experiment ID which is the ACL container holding the trace.
optional string experiment_id = 1;
}
message InferenceTableLocation {
// Full inference table name in the form of catalog.schema.table_name
optional string full_table_name = 1;
}
// The location where the traces was stored and produced
message TraceLocation {
enum TraceLocationType {
TRACE_LOCATION_TYPE_UNSPECIFIED = 0;
MLFLOW_EXPERIMENT = 1;
INFERENCE_TABLE = 2;
UC_SCHEMA = 3;
UC_TABLE_PREFIX = 4;
}
optional TraceLocationType type = 1;
oneof identifier {
MlflowExperimentLocation mlflow_experiment = 2;
InferenceTableLocation inference_table = 3;
UCSchemaLocation uc_schema = 4;
UcTablePrefixLocation uc_table_prefix = 5;
}
}
message TraceInfo {
// The primary key associated with the trace
optional string trace_id = 1;
// Client supplied request ID associated with the trace. This could be used to identify the trace/request from an
// external system that produced the trace.
optional string client_request_id = 2;
optional TraceLocation trace_location = 3;
// A preview of the request to the model/agent represented as a JSON string. This is equivalent to the input of the root
// span. This preview value is truncated to 10KB while the full request is stored in the trace data in blob storage.
optional string request_preview = 4;
// A preview of the request to the model/agent represented as a JSON string. This is equivalent to the output of the root
// span. This preview value is truncated to 10KB while the full response is stored in the trace data in blob storage.
optional string response_preview = 5;
// Start time of the trace
optional google.protobuf.Timestamp request_time = 6;
// Execution time of the trace
optional google.protobuf.Duration execution_duration = 7;
// Execution state of the trace at the time that it was logged.
enum State {
STATE_UNSPECIFIED = 0;
// The operation being traced was successful.
OK = 1;
// The operation being traced failed.
ERROR = 2;
// The operation being traced is still in progress. This is useful for incremental/distributed tracing logging in
// contrast with when the full trace is logged only upon its completion.
IN_PROGRESS = 3;
}
optional State state = 8;
// Metadata associated with the trace.
// Examples include:
// - run_id: The ID of the mlflow Run (i.e. evaluation job) that produced the trace. May not be
// applicable in certain situations such as if the trace was created via interactive vibe checks)
// - model_id: The ID of the associated model that produced the trace.
// - dataset_id: The ID of the mlflow Dataset (usually used together with dataset_record_id)
// - dataset_record_id: The ID of the mlflow Dataset (usually used together with dataset_record_id)
// - session_id: The ID of the session (e.g. chat conversation) where the request came from
map<string, string> trace_metadata = 9;
repeated Assessment assessments = 10;
// Mutable, user-defined tags for the trace, e.g. "question_topic": "DBSQL"
map<string, string> tags = 11;
}
message CreateTraceInfo {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// The location ID of the trace.
optional string location_id = 1 [(validate_required) = true];
// The information for the trace being created.
optional TraceInfo trace_info = 2 [(validate_required) = true];
message Response {
// The created trace information.
optional TraceInfo trace_info = 1;
}
}
message TracePath {
// location of the trace
optional TraceLocation trace_location = 1 [(validate_required) = true];
// ID of the trace.
optional string trace_id = 2 [(validate_required) = true];
}
message Trace {
optional TraceInfo trace_info = 1;
repeated opentelemetry.proto.trace.v1.Span spans = 2;
}
message BatchGetTraces {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// The location ID to search on (e.g. "main.catalog" for UC schema).
optional string location_id = 1 [(validate_required) = true];
// The trace IDs to fetch. They must all be located in the same location specified by location_id.
repeated string trace_ids = 2;
// SQL warehouse ID for UC queries
optional string sql_warehouse_id = 3;
message Response {
// The fetched trace information.
repeated Trace traces = 1;
}
}
message GetTraceInfo {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// ID of the trace to fetch. Must be provided.
optional string trace_id = 1 [(validate_required) = true];
// Location of the trace to fetch from. Must be provided.
optional string location = 2 [(validate_required) = true];
// Optional SQL warehouse ID for fetching trace data.
optional string sql_warehouse_id = 3;
message Response {
optional Trace trace = 1;
}
}
message SetTraceTag {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// ID of the trace on which to set a tag.
optional string trace_id = 1 [(validate_required) = true];
// The location ID (experiment_id or catalog.schema).
optional string location_id = 2 [(validate_required) = true];
// Name of the tag. Maximum size depends on storage backend.
// All storage backends are guaranteed to support key values up to 250 bytes in size.
optional string key = 3 [(validate_required) = true];
// String value of the tag being logged. Maximum size depends on storage backend.
// All storage backends are guaranteed to support key values up to 250 bytes in size.
optional string value = 4;
message Response {}
}
message DeleteTraceTag {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// ID of the trace on which to set a tag.
optional string trace_id = 1 [(validate_required) = true];
// The location ID (experiment_id or catalog.schema).
optional string location_id = 2 [(validate_required) = true];
// Name of the tag to delete.
optional string key = 3 [(validate_required) = true];
// Optional SQL warehouse ID for setting trace tag.
optional string sql_warehouse_id = 4;
message Response {}
}
message SearchTraces {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// A list of trace locations to search over.
repeated TraceLocation locations = 1;
// A filter expression over trace attributes and tags that allows returning a subset of
// traces. The syntax is a subset of SQL that supports ANDing together binary operations
// Example: ``trace.status = 'OK' and trace.timestamp_ms > 1711089570679``.
optional string filter = 2;
// Maximum number of traces desired. Max threshold is 500.
optional int32 max_results = 3 [default = 100];
// List of columns for ordering the results, e.g. ``["timestamp_ms DESC"]``.
repeated string order_by = 4;
// Optional SQL warehouse ID for searching traces.
optional string sql_warehouse_id = 5;
// Token indicating the page of traces to fetch.
optional string page_token = 6;
message Response {
// Information about traces that match the search criteria.
repeated TraceInfo trace_infos = 1;
optional string next_page_token = 2;
}
}
// Must be kept in sync with SearchTraces — same fields, different RPC contract
// (returns an Operation instead of SearchTraces.Response).
message SearchTracesLongRunning {
option (scalapb.message).extends = "com.databricks.rpc.RPC[Operation]";
repeated TraceLocation locations = 1;
optional string filter = 2;
optional int32 max_results = 3 [default = 100];
repeated string order_by = 4;
optional string sql_warehouse_id = 5;
optional string page_token = 6;
}
message GetOperationRequest {
option (scalapb.message).extends = "com.databricks.rpc.RPC[Operation]";
// Operation name returned by SearchTracesLongRunning.
optional string name = 1;
}
// Metadata for the SearchTracesLongRunning operation.
message SearchTracesOperationMetadata {
optional google.protobuf.Timestamp start_time = 1;
enum State {
STATE_UNSPECIFIED = 0;
RUNNING = 1;
SUCCEEDED = 2;
FAILED = 3;
}
optional State state = 2;
}
// Long-running operation resource, mirroring google.longrunning.Operation but
// specialized for SearchTracesLongRunning — `metadata` and `response` carry the
// concrete types directly (instead of google.protobuf.Any) so JSON bodies
// from the REST layer deserialize without needing @type URLs. `error` uses the
// verbatim `databricks.api.DatabricksServiceExceptionWithDetailsProto` so the
// wire shape matches universe's `databricks.longrunning.Operation`.
message SearchTracesOperation {
// Server-assigned name of the form "operations/{unique_id}".
optional string name = 1;
// Progress metadata.
optional SearchTracesOperationMetadata metadata = 2;
// If false, the operation is still in progress. If true, exactly one of
// `error` or `response` is set.
optional bool done = 3;
oneof result {
.databricks.api.DatabricksServiceExceptionWithDetailsProto error = 4;
SearchTraces.Response response = 5;
}
}
// =============================================================================
// Enablement API Messages
// =============================================================================
message CreateTraceUCStorageLocation {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
oneof location {
UCSchemaLocation uc_schema = 1;
}
// SQL warehouse ID for creating views and querying
optional string sql_warehouse_id = 2 [(validate_required) = true];
message Response {
optional UCSchemaLocation uc_schema = 1;
}
}
message LinkExperimentToUCTraceLocation {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// The experiment ID to link the location
optional string experiment_id = 1 [(validate_required) = true];
// Location to link.
oneof location {
UCSchemaLocation uc_schema = 2;
}
message Response {}
}
message UnLinkExperimentToUCTraceLocation {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// Experiment ID to unlink from
optional string experiment_id = 1 [(validate_required) = true];
// Location to unlink.
oneof location {
UCSchemaLocation uc_schema = 2;
}
message Response {}
}
message GetLocation {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
optional string location_id = 1 [(validate_required) = true];
message Response {
optional UcTablePrefixLocation uc_table_prefix = 1;
}
}
message CreateLocation {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
oneof location {
UCSchemaLocation uc_schema = 1;
UcTablePrefixLocation uc_table_prefix = 2;
}
optional string sql_warehouse_id = 3;
message Response {
oneof location {
UCSchemaLocation uc_schema = 1;
UcTablePrefixLocation uc_table_prefix = 2;
}
}
}
message LinkTraceLocation {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
optional string experiment_id = 1 [(validate_required) = true];
oneof location {
UCSchemaLocation uc_schema = 2;
UcTablePrefixLocation uc_table_prefix = 3;
}
message Response {}
}
// =============================================================================
// Assessment API Messages
// =============================================================================
// Note: We import assessment types from assessments.proto and extend Assessment
// with trace_location field for Databricks-specific use cases.
// Data and metadata for an assessment of a trace.
message Assessment {
// Unique ID of the assessment.
// NB: This is not marked as required field via "validate_required", because the message is
// used in the context of creating a new assessment, where the ID is not known.
optional string assessment_id = 1;
// Name of the assessment. The name must not contain ".".
optional string assessment_name = 2 [(validate_required) = true];
// ID of the trace this assessment is associated with.
optional string trace_id = 3 [(validate_required) = true];
// Location of the trace this assessment is associated with.
optional TraceLocation trace_location = 4;
// ID of the span if the assessment is for a particular span (optional).
optional string span_id = 5;
// The source this assessment came from.
optional assessments.AssessmentSource source = 6;
// The creation time of this assessment.
optional google.protobuf.Timestamp create_time = 7;
// The last update time of this assessment.
optional google.protobuf.Timestamp last_update_time = 8;
// An Assessment can either be human/code/judge Feedback, human-generated Expectation, or an error.
// The name of the Feedback or Expectation must be the same with the assessment_name.
oneof value {
// The feedback on the trace from this assessment.
assessments.Feedback feedback = 9;
// A representation of the guidelines and/or expected response from the agent.
assessments.Expectation expectation = 10;
}
// Justification for the assessment.
optional string rationale = 11;
// Additional metadata describing the assessment and store additional information,
// such as the chunk relevance chunk_index. This metadata is required to be JSON-serializable.
map<string, string> metadata = 12;
// The ID of the assessment which this assessment overrides.
optional string overrides = 13;
// Whether this assessment is valid (i.e. has not been superseded)
// defaults to true, and is set to false if a new superseding assessment
// is created.
optional bool valid = 14 [default = true];
}
// Create an assessment.
message CreateAssessment {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// Location ID (experiment_id or catalog.schema)
// This must match the trace_location supplied in the assessment field.
optional string location_id = 1 [(validate_required) = true];
// Assessment to create
optional Assessment assessment = 2 [(validate_required) = true];
// SQL warehouse ID for UC queries
optional string sql_warehouse_id = 3;
message Response {
// The created assessment.
optional Assessment assessment = 1;
}
}
// Get an assessment.
message GetAssessment {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// Location ID (experiment_id or catalog.schema)
optional string location_id = 1 [(validate_required) = true];
// Trace ID
optional string trace_id = 2 [(validate_required) = true];
// Assessment ID to retrieve
optional string assessment_id = 3 [(validate_required) = true];
// SQL warehouse ID for UC queries
optional string sql_warehouse_id = 4;
message Response {
// The requested assessment.
optional Assessment assessment = 1;
}
}
// Update an assessment.
message UpdateAssessment {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// Location ID (experiment_id or catalog.schema)
optional string location_id = 1 [(validate_required) = true];
// Assessment with updated fields
optional Assessment assessment = 2 [(validate_required) = true];
// Field mask specifying which fields to update
//
// Valid field names to update are:
// `assessment_name`,
// `span_id`,
// `source`,
// `feedback`,
// `expectation`,
// `rationale`,
// `metadata`,
// `overrides`, and
// `valid`.
optional google.protobuf.FieldMask update_mask = 3 [(validate_required) = true];
// SQL warehouse ID for UC queries
optional string sql_warehouse_id = 4;
message Response {
// The assessment after the update.
optional Assessment assessment = 1;
}
}
// Delete an assessment.
message DeleteAssessment {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// Location ID (experiment_id or catalog.schema)
optional string location_id = 1 [(validate_required) = true];
// Trace ID
optional string trace_id = 2 [(validate_required) = true];
// Assessment ID to delete
optional string assessment_id = 3 [(validate_required) = true];
// SQL warehouse ID for UC queries
optional string sql_warehouse_id = 4;
message Response {}
}
// =============================================================================
// Trace-to-Run Linking API Messages
// =============================================================================
// Link traces to a run by creating internal trace-to-run relationships.
message BatchLinkTraceToRun {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// The location ID (experiment_id or catalog.schema) where the traces are stored.
optional string location_id = 1 [(validate_required) = true];
// IDs of the traces to link to the run.
// The maximum number of trace IDs that can be linked in a single request is 100.
repeated string trace_ids = 2;
// ID of the run to link the traces to.
optional string run_id = 3 [(validate_required) = true];
message Response {
// Empty response
}
}
// Unlink traces from a run by removing the internal trace-to-run relationships.
message BatchUnlinkTraceFromRun {
option (scalapb.message).extends = "com.databricks.rpc.RPC[$this.Response]";
// The location ID (experiment_id or catalog.schema) where the traces are stored.
optional string location_id = 1 [(validate_required) = true];
// IDs of the traces to unlink from the run.
// The maximum number of trace IDs that can be unlinked in a single request is 100.
repeated string trace_ids = 2;
// ID of the run to unlink the traces from.
optional string run_id = 3 [(validate_required) = true];
message Response {
// Empty response
}
}