@odigos/ui-kit 0.0.268 → 0.0.269
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/lib/chunks/helpers-w7krM8zT.js +9 -0
- package/lib/chunks/index-C8U7vd0v.js +257 -0
- package/lib/chunks/source-instrument-form-context-DS-dr35D.js +5 -0
- package/lib/chunks/{ui-components--pbkVlso.js → ui-components-dsTdscIC.js} +4 -4
- package/lib/components.js +1 -1
- package/lib/constants.js +1 -1
- package/lib/containers/_drawers/edit-action-drawer/helpers.d.ts +3 -3
- package/lib/containers/_forms/add-action-form/custom-fields/index.d.ts +3 -0
- package/lib/containers.js +221 -323
- package/lib/contexts/action-form-context.d.ts +8 -2
- package/lib/contexts.js +1 -1
- package/lib/functions.js +1 -1
- package/lib/hooks/useActionFormData.d.ts +1 -1
- package/lib/hooks/useInstrumentationRuleFormData.d.ts +1 -1
- package/lib/hooks.js +1 -1
- package/lib/snippets/dynamic-field/fields.d.ts +65 -0
- package/lib/snippets/dynamic-field/index.d.ts +2 -27
- package/lib/snippets/dynamic-field/leaf.d.ts +35 -0
- package/lib/snippets.js +1 -1
- package/lib/store/useFilterStore.d.ts +4 -0
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types/actions/index.d.ts +6 -7
- package/lib/types/common/index.d.ts +25 -1
- package/lib/types/destinations/index.d.ts +2 -6
- package/lib/types/instrumentation-rules/index.d.ts +2 -6
- package/lib/types.js +1 -1
- package/lib/visuals.js +1 -1
- package/package.json +1 -1
- package/lib/chunks/index-C4ggK_Tz.js +0 -155
- package/lib/chunks/odigos-context-pyaT77YA.js +0 -9
- package/lib/chunks/source-instrument-form-context-Bryjhxz4.js +0 -5
- package/lib/containers/_forms/add-action-form/dynamic-fields/index.d.ts +0 -21
- package/lib/containers/_forms/add-destination-form/dynamic-fields/index.d.ts +0 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import n,{css as r,useTheme as i,keyframes as a,ThemeProvider as s}from"styled-components";import{ActionIcon as l,RenameAttributeIcon as c,PiiMaskingIcon as d,DeleteAttributeIcon as u,AddClusterInfoIcon as p,K8sLogo as h,ImageErrorIcon as g,PayloadCollectionIcon as m,HeadersCollectionIcon as f,CustomInstrumentationIcon as y,CodeAttributesIcon as b,VSquareIcon as v,XSquareIcon as E,KafkaLogo as S,RedisLogo as $,PostgresLogo as C,NginxLogo as x,MysqlLogo as w,ElixirLogo as T,SwiftLogo as O,RustLogo as N,RubyLogo as I,PhpLogo as A,CPlusPlusLogo as _,CSharpLogo as R,DotnetLogo as D,PythonLogo as k,NodejsLogo as L,GoLogo as P,JavaLogo as U,PyroscopeLogo as M,AwsXrayLogo as F,VictoriaMetricsLogo as z,UptraceLogo as B,TraceloopLogo as H,TingyunLogo as W,TempoLogo as j,TelemetryHubLogo as G,SumoLogicLogo as X,SplunkLogo as V,SignozLogo as K,SeqLogo as Y,AwsS3Logo as J,QuickwitLogo as q,GigapipeLogo as Q,QrynLogo as Z,PrometheusLogo as ee,OpenTelemetryLogo as te,OracleLogo as oe,OpsVerseLogo as ne,OpenObserveLogo as re,OneUptimeLogo as ie,OdigosLogo as ae,ObserveLogo as se,NewRelicLogo as le,MiddlewareLogo as ce,LumigoLogo as de,LokiLogo as ue,LogzioLogo as pe,LightstepLogo as he,Last9Logo as ge,KloudmateLogo as me,JaegerLogo as fe,InstanaLogo as ye,HyperDxLogo as be,HoneycombLogo as ve,GroundcoverLogo as Ee,GreptimeLogo as Se,GrafanaLogo as $e,GoogleCloudPlatformLogo as Ce,ElasticSearchLogo as xe,ElasticApmLogo as we,DynatraceLogo as Te,DatadogLogo as Oe,Dash0Logo as Ne,CoralogixLogo as Ie,AwsCloudwatchLogo as Ae,ClickhouseLogo as _e,ChronosphereLogo as Re,ChecklyLogo as De,CauselyLogo as ke,BonreeLogo as Le,BetterStackLogo as Pe,AzureMonitorLogo as Ue,AzureBlobLogo as Me,AxiomLogo as Fe,AppDynamicsLogo as ze,AlibabaCloudLogo as Be,AlaudaLogo as He,SamplingIcon as We,InstrumentationRuleIcon as je,DestinationIcon as Ge,SourceIcon as Xe,NamespacesIcon as Ve,TracesIcon as Ke,MetricsIcon as Ye,LogsIcon as Je,CloudConnectorIcon as qe,VmLogo as Qe,DotsHorizontalIcon as Ze,QuestionCircleIcon as et,ExclamationTriangleIcon as tt,ExclamationCircleIcon as ot,ISquareIcon as nt,AwsLogo as rt,AwsSecretsManagerLogo as it,AwsStepFunctionsLogo as at,AwsEventBridgeLogo as st,AwsBedrockLogo as lt,AwsApiGatewayLogo as ct,AwsEc2Logo as dt,AwsKinesisLogo as ut,AwsLambdaLogo as pt,AwsSnsLogo as ht,AwsSqsLogo as gt,AwsDynamoDbLogo as mt,AwsStsLogo as ft,OpenTelemetryLogoStripped as yt,CodeIcon as bt,VIcon as vt,CopyIcon as Et,SearchIcon as St,XIcon as $t,MinusIcon as Ct,ChevronUpIcon as xt,ChevronDownIcon as wt,DotsVerticalIcon as Tt,EyeClosedIcon as Ot,EyeOpenIcon as Nt,ArrowIcon as It,ListIcon as At,PlusIcon as _t,TrashIcon as Rt,DotIcon as Dt,ArrowRightIcon as kt,FilterIcon as Lt}from"../icons.js";import{create as Pt}from"zustand";import{forwardRef as Ut,Fragment as Mt,useState as Ft,useEffect as zt,useCallback as Bt,useMemo as Ht,useRef as Wt,useLayoutEffect as jt,createElement as Gt}from"react";import Xt from"javascript-time-ago";import Vt from"javascript-time-ago/locale/en";import Kt,{createPortal as Yt}from"react-dom";import{Highlight as Jt,themes as qt}from"prism-react-renderer";import{persist as Qt,createJSONStorage as Zt}from"zustand/middleware";import{ErrorBoundary as eo}from"react-error-boundary";import{VList as to}from"virtua";const oo=e=>{let t=e.toString().replace("v","").split("-")[0];t=t.match(/[\d.]+/)?.[0]||"";const o=t.split(".");return 1e4*parseInt(o[0]||"0",10)+parseInt(o[1]||"0",10)};var no,ro,io,ao,so,lo,co,uo,po,ho,go,mo,fo,yo,bo,vo,Eo,So,$o,Co,xo,wo,To,Oo,No,Io,Ao,_o,Ro,Do,ko,Lo,Po,Uo,Mo,Fo,zo,Bo,Ho,Wo,jo,Go;(e=>{e.K8sAttributes="K8sAttributesResolver",e.AddClusterInfo="AddClusterInfo",e.DeleteAttributes="DeleteAttribute",e.RenameAttributes="RenameAttribute",e.PiiMasking="PiiMasking",e.URLTemplatization="URLTemplatization",e.ExtractAttribute="ExtractAttribute"})(no||(no={})),(e=>{e.CollectContainerAttributes="collectContainerAttributes",e.CollectReplicaSetAttributes="collectReplicaSetAttributes",e.CollectWorkloadId="collectWorkloadId",e.CollectClusterId="collectClusterId",e.LabelsAttributes="labelsAttributes",e.AnnotationsAttributes="annotationsAttributes",e.ClusterAttributes="clusterAttributes",e.OverwriteExistingValues="overwriteExistingValues",e.AttributeNamesToDelete="attributeNamesToDelete",e.Renames="renames",e.PiiCategories="piiCategories",e.UrlTemplatizationRulesGroups="urlTemplatizationRulesGroups",e.ExtractAttribute="extractAttribute"})(ro||(ro={})),(e=>{e.Pod="pod",e.Namespace="namespace",e.Node="node"})(io||(io={})),(e=>{e.EXISTS="exists",e.EQUALS="equals",e.NOT_EQUALS="not_equals",e.CONTAINS="contains",e.NOT_CONTAINS="not_contains",e.REGEX="regex"})(ao||(ao={})),(e=>{e.EXISTS="exists",e.EQUALS="equals",e.NOT_EQUALS="not_equals",e.GREATER_THAN="greater_than",e.LESS_THAN="less_than",e.GREATER_THAN_OR_EQUAL="greater_than_or_equal",e.LESS_THAN_OR_EQUAL="less_than_or_equal"})(so||(so={})),(e=>{e.EXISTS="exists",e.EQUALS="equals"})(lo||(lo={})),(e=>{e.EXISTS="exists",e.EQUALS="equals",e.NOT_EQUALS="not_equals",e.IS_VALID_JSON="is_valid_json",e.IS_INVALID_JSON="is_invalid_json",e.JSONPATH_EXISTS="jsonpath_exists",e.KEY_EQUALS="key_equals",e.KEY_NOT_EQUALS="key_not_equals"})(co||(co={})),(e=>{e.JSON="json",e.SQL="sql",e.ResourcePath="resource_path"})(uo||(uo={})),(e=>{e.Discovery="discovery",e.Instrumentation="instrumentation",e.ComputePlatforms="computePlatforms",e.Gateway="gateway"})(po||(po={})),(e=>{e.Horizontal="horizontal",e.Vertical="vertical"})(ho||(ho={})),(e=>{e.Ascending="ascending",e.Descending="descending"})(go||(go={})),(e=>{e.Community="community",e.Onprem="onprem"})(mo||(mo={})),(e=>{e.K8s="k8s",e.Vm="vm",e.Connector="connector"})(fo||(fo={})),(e=>{e.Cli="odigos-cli",e.Helm="helm",e.Operator="odigos-operator"})(yo||(yo={})),(e=>{e.New="NEW",e.AppsSelected="APPS_SELECTED",e.Finished="FINISHED"})(bo||(bo={})),(e=>{e.Go="go",e.JavaScript="javascript",e.Python="python",e.Java="java",e.DotNet="dotnet",e.CSharp="csharp",e.CPlusPlus="cplusplus",e.Php="php",e.Ruby="ruby",e.Rust="rust",e.Swift="swift",e.Elixir="elixir",e.MySql="mysql",e.Nginx="nginx",e.Postgres="postgres",e.Redis="redis",e.Kafka="kafka",e.Ignored="ignored",e.Unknown="unknown",e.Processing="processing",e.NoContainers="no containers",e.NoRunningPods="no running pods"})(vo||(vo={})),(e=>{e.Create="Create",e.Read="Read",e.Update="Update",e.Delete="Delete"})(Eo||(Eo={})),(e=>{e.Namespace="Namespace",e.Source="Source",e.Destination="Destination",e.Action="Action",e.InstrumentationRule="InstrumentationRule",e.SamplingRule="SamplingRule"})(So||(So={})),(e=>{e.DataStream="DataStream"})($o||($o={})),(e=>{e.Input="input",e.MultiInput="multiInput",e.MultiTabledInput="multiTabledInput",e.KeyValuePair="keyValuePairs",e.TextArea="textarea",e.Dropdown="dropdown",e.Checkbox="checkbox",e.CheckboxList="checkboxList",e.Toggle="toggle",e.Time="time",e.FieldGroup="fieldGroup"})(Co||(Co={})),(e=>{e.Text="text",e.Password="password",e.Number="number",e.Decimal="decimal"})(xo||(xo={})),(e=>{e.Warning="warning",e.Error="error",e.Success="success",e.Info="info",e.Default="default",e.Loading="loading",e.Disabled="disabled",e.Unknown="unknown"})(wo||(wo={})),(e=>{e.INSTRUMENTED="Instrumented",e.INSTRUMENTING="Instrumenting",e.UNINSTRUMENTED="Uninstrumented",e.NOT_INSTRUMENTED="Not Instrumented"})(To||(To={})),(e=>{e.MarkedForInstrumentation="MarkedForInstrumentation",e.RuntimeDetection="RuntimeDetection",e.AgentEnabled="AgentEnabled",e.AgentInjected="AgentInjected",e.WorkloadRollout="WorkloadRollout",e.ProcessesHealthStatus="ProcessesHealthStatus",e.ExpectingTelemetry="ExpectingTelemetry",e.WorkloadOdigosHealth="WorkloadOdigosHealth"})(Oo||(Oo={})),(e=>{e.TriggeredSuccessfully="RolloutTriggeredSuccessfully",e.RolloutFinished="RolloutFinished",e.PreviousRolloutOngoing="PreviousRolloutOngoing",e.Disabled="Disabled",e.NotRequired="NotRequired",e.WaitingForRestart="WaitingForRestart",e.WorkloadNotSupporting="WorkloadNotSupporting",e.WaitingInQueue="WaitingInQueue",e.FailedToPatch="FailedToPatch"})(No||(No={})),(e=>{e.SuccessfullyInjected="SuccessfullyInjected",e.NoAgentInjected="NoAgentInjected",e.SomePodsAgentNotInjectedRolloutNeeded="SomePodsAgentNotInjectedRolloutNeeded",e.AgentInjectedAndDataSent="AgentInjectedAndDataSent"})(Io||(Io={})),(e=>{e.CodeAttributes="code-attributes",e.FullPayloadCollection="full-payload-collection",e.DbPayloadCollection="db-payload-collection",e.QueryOperationDetector="query-operation-detector",e.AllowConcurrentAgents="allow_concurrent_agents",e.JavaEbpfInstrumentations="java-ebpf-instrumentations",e.JavaNativeInstrumentations="java-native-instrumentations",e.SizeS="size_s",e.SizeM="size_m",e.SizeL="size_l"})(Ao||(Ao={})),(e=>{e.Alauda="alauda",e.AlibabaCloud="alibabacloud",e.AppDynamics="appdynamics",e.Axiom="axiom",e.AzureBlob="azureblob",e.AzureMonitor="azuremonitor",e.BetterStack="betterstack",e.Bonree="bonree",e.Causely="causely",e.Checkly="checkly",e.Chronosphere="chronosphere",e.ClickHouse="clickhouse",e.CloudWatch="cloudwatch",e.Coralogix="coralogix",e.Dash0="dash0",e.Datadog="datadog",e.Dynamic="dynamic",e.Dynatrace="dynatrace",e.ElasticApm="elasticapm",e.ElasticSearch="elasticsearch",e.GoogleCloud="googlecloud",e.GoogleCloudOTLP="googlecloudotlp",e.GrafanaCloudLoki="grafanacloudloki",e.GrafanaCloudPrometheus="grafanacloudprometheus",e.GrafanaCloudTempo="grafanacloudtempo",e.Greptime="greptime",e.Groundcover="groundcover",e.Honeycomb="honeycomb",e.HyperDX="hyperdx",e.Instana="instana",e.Jaeger="jaeger",e.Kafka="kafka",e.Kloudmate="kloudmate",e.Last9="last9",e.Lightstep="lightstep",e.LogzIo="logzio",e.Loki="loki",e.Lumigo="lumigo",e.Middleware="middleware",e.NewRelic="newrelic",e.Observe="observe",e.Odigos="odigos",e.OneUptime="oneuptime",e.OpenObserve="openobserve",e.Opsverse="opsverse",e.Oracle="oracle",e.OTLP="otlp",e.OTLPHttp="otlphttp",e.Prometheus="prometheus",e.Qryn="qryn",e.QrynOss="qryn-oss",e.Quickwit="quickwit",e.S3="s3",e.Seq="seq",e.Signalfx="signalfx",e.Signoz="signoz",e.Splunk="splunk",e.SplunkSapm="splunksapm",e.SplunkOtlp="splunkotlp",e.SumoLogic="sumologic",e.TelemetryHub="telemetryhub",e.Tempo="tempo",e.Tingyun="tingyun",e.Traceloop="traceloop",e.Uptrace="uptrace",e.VictoriaMetrics="victoriametrics",e.VictoriaMetricsCloud="victoriametricscloud",e.XRay="xray",e.Pyroscope="pyroscope"})(_o||(_o={})),(e=>{e.Deployment="Deployment",e.DaemonSet="DaemonSet",e.StatefulSet="StatefulSet",e.CronJob="CronJob",e.Pod="Pod",e.StaticPod="StaticPod",e.Rollout="Rollout",e.ConfigMap="ConfigMap",e.DeploymentConfig="DeploymentConfig",e.InstrumentationConfig="InstrumentationConfig"})(Ro||(Ro={})),(e=>{e.GolangCommunity="golang-community",e.NodejsCommunity="nodejs-community",e.PythonCommunity="python-community",e.JavaCommunity="java-community",e.DotNetCommunity="dotnet-community",e.RubyCommunity="ruby-community",e.PhpCommunity="php-community",e.GolangEnterprise="golang-enterprise",e.NodejsEnterprise="nodejs-enterprise",e.PythonEnterprise="python-enterprise",e.JavaEnterprise="java-enterprise",e.JavaEbpfInstrumentations="java-ebpf-instrumentations",e.OpentelemetryEbpfInstrumentation="opentelemetry-ebpf-instrumentation",e.DotNetLegacy="dotnet-legacy",e.DotNetEnterprise="dotnet-enterprise",e.RubyEnterprise="ruby-enterprise",e.CPlusPlusEnterprise="cplusplus-enterprise",e.MySqlEnterprise="mysql-enterprise"})(Do||(Do={})),(e=>{e.Error="Error",e.Failure="Failure",e.Notice="Notice",e.Pending="Pending",e.Waiting="Waiting",e.Unsupported="Unsupported",e.Disabled="Disabled",e.Success="Success",e.Irrelevant="Irrelevant",e.Unknown="Unknown"})(ko||(ko={})),(e=>{e.CodeAttributes="CodeAttributes",e.HeadersCollection="HeadersCollection",e.PayloadCollection="PayloadCollection",e.CustomInstrumentation="CustomInstrumentation",e.UnknownType="UnknownType"})(Lo||(Lo={})),(e=>{e.Column="column",e.FilePath="filePath",e.Function="function",e.LineNumber="lineNumber",e.Namespace="namespace",e.StackTrace="stacktrace"})(Po||(Po={})),(e=>{e.HeaderKeys="headerKeys"})(Uo||(Uo={})),(e=>{e.Java="java",e.Golang="golang"})(Mo||(Mo={}));class Xo{className;methodName;constructor(e,t){this.className=e,this.methodName=t}Verify(){return!!this.className&&!!this.methodName}toString(){return this.Verify()?`${this.className}.${this.methodName}`:"[Faulty Java Probe]"}}class Vo{packageName;functionName;receiverName;receiverMethodName;constructor(e,t,o,n){this.packageName=e,this.functionName=t||"",this.receiverName=o||"",this.receiverMethodName=n||""}Verify(){return!(!this.packageName||(this.functionName?this.receiverMethodName||this.receiverName:!this.receiverMethodName||!this.receiverName))}toString(){return this.Verify()?this.functionName?`${this.packageName}.${this.functionName}`:this.receiverName&&this.receiverMethodName?`${this.packageName}.(${this.receiverName}).${this.receiverMethodName}`:"":"[Faulty Golang Probe]"}}(e=>{e.HttpRequest="httpRequest",e.HttpResponse="httpResponse",e.DbQuery="dbQuery",e.Messaging="messaging"})(Fo||(Fo={})),(e=>{e.Healthy="Healthy",e.Updating="Updating",e.Degraded="Degraded",e.Failed="Failed",e.Down="Down",e.Unknown="Unknown"})(zo||(zo={})),(e=>{e.Pending="Pending",e.Running="Running",e.Succeeded="Succeeded",e.Failed="Failed",e.Unknown="Unknown"})(Bo||(Bo={})),(e=>{e.ContainerCreating="ContainerCreating",e.CrashLoopBackOff="CrashLoopBackOff",e.CreateContainerError="CreateContainerError",e.CreateContainerConfigError="CreateContainerConfigError",e.ErrImagePull="ErrImagePull",e.ErrImageNeverPull="ErrImageNeverPull",e.ImagePullBackOff="ImagePullBackOff",e.InvalidImageName="InvalidImageName",e.RegistryUnavailable="RegistryUnavailable",e.NetworkNotReady="NetworkNotReady",e.Running="Running",e.Completed="Completed",e.Error="Error",e.OOMKilled="OOMKilled",e.ContainerCannotRun="ContainerCannotRun",e.DeadlineExceeded="DeadlineExceeded",e.StartError="StartError"})(Ho||(Ho={})),(e=>{e.Running="Running",e.Waiting="Waiting",e.Terminated="Terminated"})(Wo||(Wo={})),(e=>{e.Logs="LOGS",e.Metrics="METRICS",e.Traces="TRACES",e.Profiles="PROFILES"})(jo||(jo={})),(e=>{e.Logs="logs",e.Metrics="metrics",e.Traces="traces",e.Profiles="profiles"})(Go||(Go={}));const Ko={[jo.Logs]:Go.Logs,[jo.Metrics]:Go.Metrics,[jo.Traces]:Go.Traces,[jo.Profiles]:Go.Profiles},Yo={[Go.Logs]:jo.Logs,[Go.Metrics]:jo.Metrics,[Go.Traces]:jo.Traces,[Go.Profiles]:jo.Profiles};var Jo,qo;(e=>{e.RolloutWorkload="RolloutWorkload"})(Jo||(Jo={})),(e=>{e.SampledSpansOnly="sampled_spans_only",e.AllSpans="all_spans"})(qo||(qo={}));const Qo=e=>({[no.K8sAttributes]:h,[no.AddClusterInfo]:p,[no.DeleteAttributes]:u,[no.PiiMasking]:d,[no.RenameAttributes]:c,[no.ExtractAttribute]:l,[no.URLTemplatization]:l}[e]||g),Zo=[{type:no.K8sAttributes,icon:Qo(no.K8sAttributes),label:"Kubernetes Attributes",description:"This action adds kubernetes related resource attributes to spans, metrics data points and log records.",allowedSignals:[jo.Traces,jo.Metrics,jo.Logs,jo.Profiles],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/k8sattributes",supportedPlatforms:[fo.K8s]},{type:no.AddClusterInfo,icon:Qo(no.AddClusterInfo),label:"Add Cluster Info",description:"This action adds static resource attributes to spans, metrics data points and log records. It is useful to add cluster-wide attributes to all telemetry signals.",allowedSignals:[jo.Traces,jo.Metrics,jo.Logs,jo.Profiles],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/addclusterinfo",supportedPlatforms:[fo.K8s]},{type:no.DeleteAttributes,icon:Qo(no.DeleteAttributes),label:"Delete Attribute",description:"This action will delete the specified attributes from all telemetry signals that are specified in the signals field, regardless of the source, or any other condition.",allowedSignals:[jo.Traces,jo.Metrics,jo.Logs,jo.Profiles],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/deleteattribute",supportedPlatforms:[fo.K8s]},{type:no.RenameAttributes,icon:Qo(no.RenameAttributes),label:"Rename Attribute",description:"This action will rename the specified attributes from all telemetry signals that are specified in the signals field, regardless of the source, or any other condition.",allowedSignals:[jo.Traces,jo.Metrics,jo.Logs,jo.Profiles],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/renameattribute",supportedPlatforms:[fo.K8s]},{type:no.PiiMasking,icon:Qo(no.PiiMasking),label:"PII Masking",description:"This action processes a list of PII categories to be masked from the traces.",allowedSignals:[jo.Traces],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/piimasking",supportedPlatforms:[fo.K8s]},{type:no.URLTemplatization,icon:Qo(no.URLTemplatization),label:"URL Templatization",description:"Normalizes HTTP URL paths by replacing dynamic segments (IDs, UUIDs, dates) with named placeholders (e.g. /user/1234 → /user/{id}). Reduces cardinality of http.route and span names, improving usability in telemetry backends.",allowedSignals:[jo.Traces],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/urltemplatization",minVersion:{[fo.K8s]:oo("v1.21.0")},supportedPlatforms:[fo.K8s,fo.Vm]},{type:no.ExtractAttribute,icon:Qo(no.ExtractAttribute),label:"Extract Attribute",description:"Extracts a value from an existing span attribute into a new attribute on the same span. The value can be located by combining a lookup key with a pre-set data format (JSON, SQL, or resource path), or by supplying a custom regular expression that uses a single capture group.",allowedSignals:[jo.Traces],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/extractattribute",minVersion:{[fo.K8s]:oo("v1.29.0")},supportedPlatforms:[fo.K8s]}],en=(e,t)=>!e.supportedPlatforms||e.supportedPlatforms.includes(t),tn=(e,t,o)=>{const n=e.minVersion?.[t];return!n||oo(o)>=n},on=(e,t)=>Zo.filter(o=>en(o,e)&&tn(o,e,t)),nn=e=>{const t=e?.actionTypes;return t?.length?t.map(e=>({type:e.type,icon:Qo(e.type),label:e.displayName,description:e.description,allowedSignals:e.allowedSignals,docsUrl:e.docsUrl,fields:e.fields})):[]};var rn;(e=>{e.ALL="all",e.UNSAVED="unsaved",e.EXISTS="exists",e.DETECTED="detected",e.SELF_HOSTED="self-hosted",e.MANAGED="managed"})(rn||(rn={}));const an={[rn.ALL]:{TITLE:"All",DESCRIPTION:"All destinations"},[rn.UNSAVED]:{TITLE:"Selected",DESCRIPTION:"These are destinations that you have not yet saved."},[rn.EXISTS]:{TITLE:"Already configured",DESCRIPTION:"These are destinations that you have already configured in other data-streams and can reuse them."},[rn.DETECTED]:{TITLE:"Suggested",DESCRIPTION:"Odigos found these destinations in your cluster and pre-filled their details. Review and enable them to start sending data."},[rn.SELF_HOSTED]:{TITLE:"Self hosted",DESCRIPTION:"Full control and customization for advanced application monitoring."},[rn.MANAGED]:{TITLE:"Managed",DESCRIPTION:"Effortless monitoring with scalable performance management."}},sn=e=>({[Lo.CodeAttributes]:b,[Lo.CustomInstrumentation]:y,[Lo.HeadersCollection]:f,[Lo.PayloadCollection]:m,[Lo.UnknownType]:g}[e]||g),ln=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"):"";var cn,dn,un;(e=>{e.H1="h1",e.H2="h2",e.H3="h3",e.H4="h4",e.H5="h5",e.H6="h6",e.P="p",e.Span="span"})(cn||(cn={})),(e=>{e.XXXS="xxxs",e.XXS="xxs",e.XS="xs",e.S="s",e.M="m",e.L="l",e.XL="xl",e.XXL="xxl",e.XXXL="xxxl"})(dn||(dn={})),(e=>{e.Primary="primary",e.Secondary="secondary",e.Tertiary="tertiary",e.Disable="disable",e.Error="error",e.Mandatory="mandatory",e.Link="link",e.Success="success"})(un||(un={}));const pn=new Set(Object.values(un)),hn=(e,t)=>{if("string"!=typeof(o=t)||!pn.has(o))return t;var o;switch(t){case un.Primary:return e.v2.colors.white[500];case un.Secondary:return e.v2.colors.silver[200];case un.Tertiary:return e.v2.colors.black[500];case un.Disable:return e.v2.colors.grey[400];case un.Error:return e.v2.colors.red[500];case un.Mandatory:return e.v2.colors.red[600];case un.Link:return e.v2.colors.purple[400];case un.Success:return e.v2.colors.green[400];default:return}},gn=n.p`
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import n,{css as r,useTheme as i,keyframes as a,ThemeProvider as s}from"styled-components";import{ActionIcon as l,RenameAttributeIcon as c,PiiMaskingIcon as d,DeleteAttributeIcon as u,AddClusterInfoIcon as p,K8sLogo as h,ImageErrorIcon as g,PayloadCollectionIcon as m,HeadersCollectionIcon as f,CustomInstrumentationIcon as y,CodeAttributesIcon as b,VSquareIcon as v,XSquareIcon as E,KafkaLogo as S,RedisLogo as $,PostgresLogo as C,NginxLogo as x,MysqlLogo as w,ElixirLogo as T,SwiftLogo as O,RustLogo as N,RubyLogo as I,PhpLogo as A,CPlusPlusLogo as _,CSharpLogo as R,DotnetLogo as D,PythonLogo as k,NodejsLogo as L,GoLogo as P,JavaLogo as U,PyroscopeLogo as M,AwsXrayLogo as F,VictoriaMetricsLogo as z,UptraceLogo as B,TraceloopLogo as H,TingyunLogo as W,TempoLogo as j,TelemetryHubLogo as G,SumoLogicLogo as X,SplunkLogo as V,SignozLogo as K,SeqLogo as Y,AwsS3Logo as J,QuickwitLogo as q,GigapipeLogo as Q,QrynLogo as Z,PrometheusLogo as ee,OpenTelemetryLogo as te,OracleLogo as oe,OpsVerseLogo as ne,OpenObserveLogo as re,OneUptimeLogo as ie,OdigosLogo as ae,ObserveLogo as se,NewRelicLogo as le,MiddlewareLogo as ce,LumigoLogo as de,LokiLogo as ue,LogzioLogo as pe,LightstepLogo as he,Last9Logo as ge,KloudmateLogo as me,JaegerLogo as fe,InstanaLogo as ye,HyperDxLogo as be,HoneycombLogo as ve,GroundcoverLogo as Ee,GreptimeLogo as Se,GrafanaLogo as $e,GoogleCloudPlatformLogo as Ce,ElasticSearchLogo as xe,ElasticApmLogo as we,DynatraceLogo as Te,DatadogLogo as Oe,Dash0Logo as Ne,CoralogixLogo as Ie,AwsCloudwatchLogo as Ae,ClickhouseLogo as _e,ChronosphereLogo as Re,ChecklyLogo as De,CauselyLogo as ke,BonreeLogo as Le,BetterStackLogo as Pe,AzureMonitorLogo as Ue,AzureBlobLogo as Me,AxiomLogo as Fe,AppDynamicsLogo as ze,AlibabaCloudLogo as Be,AlaudaLogo as He,SamplingIcon as We,InstrumentationRuleIcon as je,DestinationIcon as Ge,SourceIcon as Xe,NamespacesIcon as Ve,TracesIcon as Ke,MetricsIcon as Ye,LogsIcon as Je,CloudConnectorIcon as qe,VmLogo as Qe,DotsHorizontalIcon as Ze,QuestionCircleIcon as et,ExclamationTriangleIcon as tt,ExclamationCircleIcon as ot,ISquareIcon as nt,AwsLogo as rt,AwsSecretsManagerLogo as it,AwsStepFunctionsLogo as at,AwsEventBridgeLogo as st,AwsBedrockLogo as lt,AwsApiGatewayLogo as ct,AwsEc2Logo as dt,AwsKinesisLogo as ut,AwsLambdaLogo as pt,AwsSnsLogo as ht,AwsSqsLogo as gt,AwsDynamoDbLogo as mt,AwsStsLogo as ft,OpenTelemetryLogoStripped as yt,CodeIcon as bt,VIcon as vt,CopyIcon as Et,SearchIcon as St,XIcon as $t,MinusIcon as Ct,ChevronUpIcon as xt,ChevronDownIcon as wt,DotsVerticalIcon as Tt,EyeClosedIcon as Ot,EyeOpenIcon as Nt,ArrowIcon as It,ListIcon as At,PlusIcon as _t,TrashIcon as Rt,DotIcon as Dt,ArrowRightIcon as kt,FilterIcon as Lt}from"../icons.js";import{create as Pt}from"zustand";import{forwardRef as Ut,Fragment as Mt,useState as Ft,useEffect as zt,useCallback as Bt,useMemo as Ht,useRef as Wt,useLayoutEffect as jt,createElement as Gt}from"react";import Xt from"javascript-time-ago";import Vt from"javascript-time-ago/locale/en";import Kt,{createPortal as Yt}from"react-dom";import{Highlight as Jt,themes as qt}from"prism-react-renderer";import{persist as Qt,createJSONStorage as Zt}from"zustand/middleware";import{ErrorBoundary as eo}from"react-error-boundary";import{VList as to}from"virtua";const oo=e=>{let t=e.toString().replace("v","").split("-")[0];t=t.match(/[\d.]+/)?.[0]||"";const o=t.split(".");return 1e4*parseInt(o[0]||"0",10)+parseInt(o[1]||"0",10)};var no,ro,io,ao,so,lo,co,uo,po,ho,go,mo,fo,yo,bo,vo,Eo,So,$o,Co,xo,wo,To,Oo,No,Io,Ao,_o,Ro,Do,ko,Lo,Po,Uo,Mo,Fo,zo,Bo,Ho,Wo,jo,Go;(e=>{e.K8sAttributes="K8sAttributesResolver",e.AddClusterInfo="AddClusterInfo",e.DeleteAttributes="DeleteAttribute",e.RenameAttributes="RenameAttribute",e.PiiMasking="PiiMasking",e.URLTemplatization="URLTemplatization",e.ExtractAttribute="ExtractAttribute"})(no||(no={})),(e=>{e.CollectContainerAttributes="collectContainerAttributes",e.CollectReplicaSetAttributes="collectReplicaSetAttributes",e.CollectWorkloadId="collectWorkloadId",e.CollectClusterId="collectClusterId",e.LabelsAttributes="labelsAttributes",e.AnnotationsAttributes="annotationsAttributes",e.ClusterAttributes="clusterAttributes",e.OverwriteExistingValues="overwriteExistingValues",e.AttributeNamesToDelete="attributeNamesToDelete",e.Renames="renames",e.PiiCategories="piiCategories",e.UrlTemplatizationRulesGroups="urlTemplatizationRulesGroups",e.ExtractAttribute="extractAttribute",e.Scopes="scopes"})(ro||(ro={})),(e=>{e.Pod="pod",e.Namespace="namespace",e.Node="node"})(io||(io={})),(e=>{e.EXISTS="exists",e.EQUALS="equals",e.NOT_EQUALS="not_equals",e.CONTAINS="contains",e.NOT_CONTAINS="not_contains",e.REGEX="regex"})(ao||(ao={})),(e=>{e.EXISTS="exists",e.EQUALS="equals",e.NOT_EQUALS="not_equals",e.GREATER_THAN="greater_than",e.LESS_THAN="less_than",e.GREATER_THAN_OR_EQUAL="greater_than_or_equal",e.LESS_THAN_OR_EQUAL="less_than_or_equal"})(so||(so={})),(e=>{e.EXISTS="exists",e.EQUALS="equals"})(lo||(lo={})),(e=>{e.EXISTS="exists",e.EQUALS="equals",e.NOT_EQUALS="not_equals",e.IS_VALID_JSON="is_valid_json",e.IS_INVALID_JSON="is_invalid_json",e.JSONPATH_EXISTS="jsonpath_exists",e.KEY_EQUALS="key_equals",e.KEY_NOT_EQUALS="key_not_equals"})(co||(co={})),(e=>{e.JSON="json",e.SQL="sql",e.ResourcePath="resource_path"})(uo||(uo={})),(e=>{e.Discovery="discovery",e.Instrumentation="instrumentation",e.ComputePlatforms="computePlatforms",e.Gateway="gateway"})(po||(po={})),(e=>{e.Horizontal="horizontal",e.Vertical="vertical"})(ho||(ho={})),(e=>{e.Ascending="ascending",e.Descending="descending"})(go||(go={})),(e=>{e.Community="community",e.Onprem="onprem"})(mo||(mo={})),(e=>{e.K8s="k8s",e.Vm="vm",e.Connector="connector"})(fo||(fo={})),(e=>{e.Cli="odigos-cli",e.Helm="helm",e.Operator="odigos-operator"})(yo||(yo={})),(e=>{e.New="NEW",e.AppsSelected="APPS_SELECTED",e.Finished="FINISHED"})(bo||(bo={})),(e=>{e.Go="go",e.JavaScript="javascript",e.Python="python",e.Java="java",e.DotNet="dotnet",e.CSharp="csharp",e.CPlusPlus="cplusplus",e.Php="php",e.Ruby="ruby",e.Rust="rust",e.Swift="swift",e.Elixir="elixir",e.MySql="mysql",e.Nginx="nginx",e.Postgres="postgres",e.Redis="redis",e.Kafka="kafka",e.Ignored="ignored",e.Unknown="unknown",e.Processing="processing",e.NoContainers="no containers",e.NoRunningPods="no running pods"})(vo||(vo={})),(e=>{e.Create="Create",e.Read="Read",e.Update="Update",e.Delete="Delete"})(Eo||(Eo={})),(e=>{e.Namespace="Namespace",e.Source="Source",e.Destination="Destination",e.Action="Action",e.InstrumentationRule="InstrumentationRule",e.SamplingRule="SamplingRule"})(So||(So={})),(e=>{e.DataStream="DataStream"})($o||($o={})),(e=>{e.Input="input",e.MultiInput="multiInput",e.MultiTabledInput="multiTabledInput",e.KeyValuePair="keyValuePairs",e.TextArea="textarea",e.Dropdown="dropdown",e.Checkbox="checkbox",e.CheckboxList="checkboxList",e.Toggle="toggle",e.Time="time",e.FieldGroup="fieldGroup",e.SourceScopes="sourceScopes"})(Co||(Co={})),(e=>{e.Text="text",e.Password="password",e.Number="number",e.Decimal="decimal"})(xo||(xo={})),(e=>{e.Warning="warning",e.Error="error",e.Success="success",e.Info="info",e.Default="default",e.Loading="loading",e.Disabled="disabled",e.Unknown="unknown"})(wo||(wo={})),(e=>{e.INSTRUMENTED="Instrumented",e.INSTRUMENTING="Instrumenting",e.UNINSTRUMENTED="Uninstrumented",e.NOT_INSTRUMENTED="Not Instrumented"})(To||(To={})),(e=>{e.MarkedForInstrumentation="MarkedForInstrumentation",e.RuntimeDetection="RuntimeDetection",e.AgentEnabled="AgentEnabled",e.AgentInjected="AgentInjected",e.WorkloadRollout="WorkloadRollout",e.ProcessesHealthStatus="ProcessesHealthStatus",e.ExpectingTelemetry="ExpectingTelemetry",e.WorkloadOdigosHealth="WorkloadOdigosHealth"})(Oo||(Oo={})),(e=>{e.TriggeredSuccessfully="RolloutTriggeredSuccessfully",e.RolloutFinished="RolloutFinished",e.PreviousRolloutOngoing="PreviousRolloutOngoing",e.Disabled="Disabled",e.NotRequired="NotRequired",e.WaitingForRestart="WaitingForRestart",e.WorkloadNotSupporting="WorkloadNotSupporting",e.WaitingInQueue="WaitingInQueue",e.FailedToPatch="FailedToPatch"})(No||(No={})),(e=>{e.SuccessfullyInjected="SuccessfullyInjected",e.NoAgentInjected="NoAgentInjected",e.SomePodsAgentNotInjectedRolloutNeeded="SomePodsAgentNotInjectedRolloutNeeded",e.AgentInjectedAndDataSent="AgentInjectedAndDataSent"})(Io||(Io={})),(e=>{e.CodeAttributes="code-attributes",e.FullPayloadCollection="full-payload-collection",e.DbPayloadCollection="db-payload-collection",e.QueryOperationDetector="query-operation-detector",e.AllowConcurrentAgents="allow_concurrent_agents",e.JavaEbpfInstrumentations="java-ebpf-instrumentations",e.JavaNativeInstrumentations="java-native-instrumentations",e.SizeS="size_s",e.SizeM="size_m",e.SizeL="size_l"})(Ao||(Ao={})),(e=>{e.Alauda="alauda",e.AlibabaCloud="alibabacloud",e.AppDynamics="appdynamics",e.Axiom="axiom",e.AzureBlob="azureblob",e.AzureMonitor="azuremonitor",e.BetterStack="betterstack",e.Bonree="bonree",e.Causely="causely",e.Checkly="checkly",e.Chronosphere="chronosphere",e.ClickHouse="clickhouse",e.CloudWatch="cloudwatch",e.Coralogix="coralogix",e.Dash0="dash0",e.Datadog="datadog",e.Dynamic="dynamic",e.Dynatrace="dynatrace",e.ElasticApm="elasticapm",e.ElasticSearch="elasticsearch",e.GoogleCloud="googlecloud",e.GoogleCloudOTLP="googlecloudotlp",e.GrafanaCloudLoki="grafanacloudloki",e.GrafanaCloudPrometheus="grafanacloudprometheus",e.GrafanaCloudTempo="grafanacloudtempo",e.Greptime="greptime",e.Groundcover="groundcover",e.Honeycomb="honeycomb",e.HyperDX="hyperdx",e.Instana="instana",e.Jaeger="jaeger",e.Kafka="kafka",e.Kloudmate="kloudmate",e.Last9="last9",e.Lightstep="lightstep",e.LogzIo="logzio",e.Loki="loki",e.Lumigo="lumigo",e.Middleware="middleware",e.NewRelic="newrelic",e.Observe="observe",e.Odigos="odigos",e.OneUptime="oneuptime",e.OpenObserve="openobserve",e.Opsverse="opsverse",e.Oracle="oracle",e.OTLP="otlp",e.OTLPHttp="otlphttp",e.Prometheus="prometheus",e.Qryn="qryn",e.QrynOss="qryn-oss",e.Quickwit="quickwit",e.S3="s3",e.Seq="seq",e.Signalfx="signalfx",e.Signoz="signoz",e.Splunk="splunk",e.SplunkSapm="splunksapm",e.SplunkOtlp="splunkotlp",e.SumoLogic="sumologic",e.TelemetryHub="telemetryhub",e.Tempo="tempo",e.Tingyun="tingyun",e.Traceloop="traceloop",e.Uptrace="uptrace",e.VictoriaMetrics="victoriametrics",e.VictoriaMetricsCloud="victoriametricscloud",e.XRay="xray",e.Pyroscope="pyroscope"})(_o||(_o={})),(e=>{e.Deployment="Deployment",e.DaemonSet="DaemonSet",e.StatefulSet="StatefulSet",e.CronJob="CronJob",e.Pod="Pod",e.StaticPod="StaticPod",e.Rollout="Rollout",e.ConfigMap="ConfigMap",e.DeploymentConfig="DeploymentConfig",e.InstrumentationConfig="InstrumentationConfig"})(Ro||(Ro={})),(e=>{e.GolangCommunity="golang-community",e.NodejsCommunity="nodejs-community",e.PythonCommunity="python-community",e.JavaCommunity="java-community",e.DotNetCommunity="dotnet-community",e.RubyCommunity="ruby-community",e.PhpCommunity="php-community",e.GolangEnterprise="golang-enterprise",e.NodejsEnterprise="nodejs-enterprise",e.PythonEnterprise="python-enterprise",e.JavaEnterprise="java-enterprise",e.JavaEbpfInstrumentations="java-ebpf-instrumentations",e.OpentelemetryEbpfInstrumentation="opentelemetry-ebpf-instrumentation",e.DotNetLegacy="dotnet-legacy",e.DotNetEnterprise="dotnet-enterprise",e.RubyEnterprise="ruby-enterprise",e.CPlusPlusEnterprise="cplusplus-enterprise",e.MySqlEnterprise="mysql-enterprise"})(Do||(Do={})),(e=>{e.Error="Error",e.Failure="Failure",e.Notice="Notice",e.Pending="Pending",e.Waiting="Waiting",e.Unsupported="Unsupported",e.Disabled="Disabled",e.Success="Success",e.Irrelevant="Irrelevant",e.Unknown="Unknown"})(ko||(ko={})),(e=>{e.CodeAttributes="CodeAttributes",e.HeadersCollection="HeadersCollection",e.PayloadCollection="PayloadCollection",e.CustomInstrumentation="CustomInstrumentation",e.UnknownType="UnknownType"})(Lo||(Lo={})),(e=>{e.Column="column",e.FilePath="filePath",e.Function="function",e.LineNumber="lineNumber",e.Namespace="namespace",e.StackTrace="stacktrace"})(Po||(Po={})),(e=>{e.HeaderKeys="headerKeys"})(Uo||(Uo={})),(e=>{e.Java="java",e.Golang="golang"})(Mo||(Mo={}));class Xo{className;methodName;constructor(e,t){this.className=e,this.methodName=t}Verify(){return!!this.className&&!!this.methodName}toString(){return this.Verify()?`${this.className}.${this.methodName}`:"[Faulty Java Probe]"}}class Vo{packageName;functionName;receiverName;receiverMethodName;constructor(e,t,o,n){this.packageName=e,this.functionName=t||"",this.receiverName=o||"",this.receiverMethodName=n||""}Verify(){return!(!this.packageName||(this.functionName?this.receiverMethodName||this.receiverName:!this.receiverMethodName||!this.receiverName))}toString(){return this.Verify()?this.functionName?`${this.packageName}.${this.functionName}`:this.receiverName&&this.receiverMethodName?`${this.packageName}.(${this.receiverName}).${this.receiverMethodName}`:"":"[Faulty Golang Probe]"}}(e=>{e.HttpRequest="httpRequest",e.HttpResponse="httpResponse",e.DbQuery="dbQuery",e.Messaging="messaging"})(Fo||(Fo={})),(e=>{e.Healthy="Healthy",e.Updating="Updating",e.Degraded="Degraded",e.Failed="Failed",e.Down="Down",e.Unknown="Unknown"})(zo||(zo={})),(e=>{e.Pending="Pending",e.Running="Running",e.Succeeded="Succeeded",e.Failed="Failed",e.Unknown="Unknown"})(Bo||(Bo={})),(e=>{e.ContainerCreating="ContainerCreating",e.CrashLoopBackOff="CrashLoopBackOff",e.CreateContainerError="CreateContainerError",e.CreateContainerConfigError="CreateContainerConfigError",e.ErrImagePull="ErrImagePull",e.ErrImageNeverPull="ErrImageNeverPull",e.ImagePullBackOff="ImagePullBackOff",e.InvalidImageName="InvalidImageName",e.RegistryUnavailable="RegistryUnavailable",e.NetworkNotReady="NetworkNotReady",e.Running="Running",e.Completed="Completed",e.Error="Error",e.OOMKilled="OOMKilled",e.ContainerCannotRun="ContainerCannotRun",e.DeadlineExceeded="DeadlineExceeded",e.StartError="StartError"})(Ho||(Ho={})),(e=>{e.Running="Running",e.Waiting="Waiting",e.Terminated="Terminated"})(Wo||(Wo={})),(e=>{e.Logs="LOGS",e.Metrics="METRICS",e.Traces="TRACES",e.Profiles="PROFILES"})(jo||(jo={})),(e=>{e.Logs="logs",e.Metrics="metrics",e.Traces="traces",e.Profiles="profiles"})(Go||(Go={}));const Ko={[jo.Logs]:Go.Logs,[jo.Metrics]:Go.Metrics,[jo.Traces]:Go.Traces,[jo.Profiles]:Go.Profiles},Yo={[Go.Logs]:jo.Logs,[Go.Metrics]:jo.Metrics,[Go.Traces]:jo.Traces,[Go.Profiles]:jo.Profiles};var Jo,qo;(e=>{e.RolloutWorkload="RolloutWorkload"})(Jo||(Jo={})),(e=>{e.SampledSpansOnly="sampled_spans_only",e.AllSpans="all_spans"})(qo||(qo={}));const Qo=e=>({[no.K8sAttributes]:h,[no.AddClusterInfo]:p,[no.DeleteAttributes]:u,[no.PiiMasking]:d,[no.RenameAttributes]:c,[no.ExtractAttribute]:l,[no.URLTemplatization]:l}[e]||g),Zo=[{type:no.K8sAttributes,icon:Qo(no.K8sAttributes),label:"Kubernetes Attributes",description:"This action adds kubernetes related resource attributes to spans, metrics data points and log records.",allowedSignals:[jo.Traces,jo.Metrics,jo.Logs,jo.Profiles],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/k8sattributes",supportedPlatforms:[fo.K8s]},{type:no.AddClusterInfo,icon:Qo(no.AddClusterInfo),label:"Add Cluster Info",description:"This action adds static resource attributes to spans, metrics data points and log records. It is useful to add cluster-wide attributes to all telemetry signals.",allowedSignals:[jo.Traces,jo.Metrics,jo.Logs,jo.Profiles],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/addclusterinfo",supportedPlatforms:[fo.K8s]},{type:no.DeleteAttributes,icon:Qo(no.DeleteAttributes),label:"Delete Attribute",description:"This action will delete the specified attributes from all telemetry signals that are specified in the signals field, regardless of the source, or any other condition.",allowedSignals:[jo.Traces,jo.Metrics,jo.Logs,jo.Profiles],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/deleteattribute",supportedPlatforms:[fo.K8s]},{type:no.RenameAttributes,icon:Qo(no.RenameAttributes),label:"Rename Attribute",description:"This action will rename the specified attributes from all telemetry signals that are specified in the signals field, regardless of the source, or any other condition.",allowedSignals:[jo.Traces,jo.Metrics,jo.Logs,jo.Profiles],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/renameattribute",supportedPlatforms:[fo.K8s]},{type:no.PiiMasking,icon:Qo(no.PiiMasking),label:"PII Masking",description:"This action processes a list of PII categories to be masked from the traces.",allowedSignals:[jo.Traces],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/piimasking",supportedPlatforms:[fo.K8s]},{type:no.URLTemplatization,icon:Qo(no.URLTemplatization),label:"URL Templatization",description:"Normalizes HTTP URL paths by replacing dynamic segments (IDs, UUIDs, dates) with named placeholders (e.g. /user/1234 → /user/{id}). Reduces cardinality of http.route and span names, improving usability in telemetry backends.",allowedSignals:[jo.Traces],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/urltemplatization",minVersion:{[fo.K8s]:oo("v1.21.0")},supportedPlatforms:[fo.K8s,fo.Vm]},{type:no.ExtractAttribute,icon:Qo(no.ExtractAttribute),label:"Extract Attribute",description:"Extracts a value from an existing span attribute into a new attribute on the same span. The value can be located by combining a lookup key with a pre-set data format (JSON, SQL, or resource path), or by supplying a custom regular expression that uses a single capture group.",allowedSignals:[jo.Traces],docsUrl:"https://docs.odigos.io/pipeline/actions/attributes/extractattribute",minVersion:{[fo.K8s]:oo("v1.29.0")},supportedPlatforms:[fo.K8s]}],en=(e,t)=>!e.supportedPlatforms||e.supportedPlatforms.includes(t),tn=(e,t,o)=>{const n=e.minVersion?.[t];return!n||oo(o)>=n},on=(e,t)=>Zo.filter(o=>en(o,e)&&tn(o,e,t)),nn=e=>{const t=e?.actionTypes;return t?.length?t.map(e=>({type:e.type,icon:Qo(e.type),label:e.displayName,description:e.description,allowedSignals:e.allowedSignals,docsUrl:e.docsUrl,fields:e.fields})):[]};var rn;(e=>{e.ALL="all",e.UNSAVED="unsaved",e.EXISTS="exists",e.DETECTED="detected",e.SELF_HOSTED="self-hosted",e.MANAGED="managed"})(rn||(rn={}));const an={[rn.ALL]:{TITLE:"All",DESCRIPTION:"All destinations"},[rn.UNSAVED]:{TITLE:"Selected",DESCRIPTION:"These are destinations that you have not yet saved."},[rn.EXISTS]:{TITLE:"Already configured",DESCRIPTION:"These are destinations that you have already configured in other data-streams and can reuse them."},[rn.DETECTED]:{TITLE:"Suggested",DESCRIPTION:"Odigos found these destinations in your cluster and pre-filled their details. Review and enable them to start sending data."},[rn.SELF_HOSTED]:{TITLE:"Self hosted",DESCRIPTION:"Full control and customization for advanced application monitoring."},[rn.MANAGED]:{TITLE:"Managed",DESCRIPTION:"Effortless monitoring with scalable performance management."}},sn=e=>({[Lo.CodeAttributes]:b,[Lo.CustomInstrumentation]:y,[Lo.HeadersCollection]:f,[Lo.PayloadCollection]:m,[Lo.UnknownType]:g}[e]||g),ln=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"):"";var cn,dn,un;(e=>{e.H1="h1",e.H2="h2",e.H3="h3",e.H4="h4",e.H5="h5",e.H6="h6",e.P="p",e.Span="span"})(cn||(cn={})),(e=>{e.XXXS="xxxs",e.XXS="xxs",e.XS="xs",e.S="s",e.M="m",e.L="l",e.XL="xl",e.XXL="xxl",e.XXXL="xxxl"})(dn||(dn={})),(e=>{e.Primary="primary",e.Secondary="secondary",e.Tertiary="tertiary",e.Disable="disable",e.Error="error",e.Mandatory="mandatory",e.Link="link",e.Success="success"})(un||(un={}));const pn=new Set(Object.values(un)),hn=(e,t)=>{if("string"!=typeof(o=t)||!pn.has(o))return t;var o;switch(t){case un.Primary:return e.v2.colors.white[500];case un.Secondary:return e.v2.colors.silver[200];case un.Tertiary:return e.v2.colors.black[500];case un.Disable:return e.v2.colors.grey[400];case un.Error:return e.v2.colors.red[500];case un.Mandatory:return e.v2.colors.red[600];case un.Link:return e.v2.colors.purple[400];case un.Success:return e.v2.colors.green[400];default:return}},gn=n.p`
|
|
2
2
|
margin: 0;
|
|
3
3
|
color: ${({$color:e,theme:t})=>hn(t,e)||t.v2.colors.grey[50]};
|
|
4
4
|
font-family: ${({theme:e})=>e.font_family.primary};
|
|
@@ -38,7 +38,7 @@ import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import n,{css as
|
|
|
38
38
|
text-decoration: underline;
|
|
39
39
|
}
|
|
40
40
|
`}
|
|
41
|
-
`,mn=Ut(({children:o,variant:n=cn.P,color:r,size:i=dn.S,weight:a=400,opacity:s=1,align:l="left",lineHeight:c,transform:d,nowrap:u,underline:p,onClick:h,disabled:g,maxLines:m,...f},y)=>{const b=o?.toString().split("\n")||[];return e(gn,{ref:y,as:n,$color:r,$size:i,$weight:a,$opacity:s,$align:l,$lineHeight:c,$transform:d,$nowrap:u,$underline:p,$maxLines:m,$withClick:!!h&&!g,onClick:g?void 0:h,...f,children:b.map((o,n)=>t(Mt,{children:[o,n!==b.length-1&&e("br",{})]},`typography-${n}-${o}`))})});mn.displayName="Typography";const fn="https://docs.odigos.io",yn="default",bn="this-cluster",vn="This Cluster",En={SELECTED_DATA_STREAM:"SELECTED_DATA_STREAM",SELECTED_DATA_STREAM_WITH_PROXY:e=>`SELECTED_DATA_STREAM_${e}`,OVERVIEW_FILTERS:"OVERVIEW_FILTERS",DARK_MODE:"DARK_MODE"},Sn={REQUIRED_FIELDS:"Required fields are missing",FIELD_IS_REQUIRED:"This field is required",FORBIDDEN:"Forbidden",ENTERPRISE_ONLY:(e="This")=>`${e} is an Enterprise feature. Please upgrade your plan.`,DEFINED_FOR_ALL_STREAMS:e=>`${e} are defined for all Data Streams.`,CANNOT_EDIT_RULE:"Cannot edit a system-managed instrumentation rule",CANNOT_DELETE_RULE:"Cannot delete a system-managed instrumentation rule",LATENCY_HTTP_ROUTE:'HTTP route must start with a forward slash "/"',READONLY_WARNING:"You're not allowed to create/update/delete in readonly mode",ILLEGAL_K8S_LABEL:'Must be 63 characters or less, must consist of alphanumeric characters, "-", "_", or ".", and must start & end with an alphanumeric character (e.g., my-name, 123.abc).',INVALID_VERSION:'Invalid version format, must be in the format of "major.minor.patch" (e.g. 1.0.0)'},$n={NAMESPACE:"Namespace",NAME:"Name",KIND:"Kind",REGION:"Region",SERVICE_NAME:"Service Name",CONNECTION:"Connection",CONNECTIONS:"Connections",CLOUD_CONNECTOR:"Cloud Connector",CREATE_CLOUD_CONNECTOR:"Create Cloud Connector",CLOUD_CONNECTOR_SELECT_PROVIDER_TITLE:"Connect a cloud or SaaS account to Odigos Central",CLOUD_CONNECTOR_SELECT_PROVIDER_SUBTITLE:"Choose a provider and decide how much access Odigos should have in your account.",CLOUD_CONNECTOR_PERMISSIONS_NOTE:"Cloud connectors require a platform account with cross-account IAM trust and scoped permissions for Odigos Central (e.g. sts:AssumeRole plus discovery/instrumentation policies). Organizations without these privileges cannot complete this workflow.",CLOUD_CONNECTOR_PERMISSION_DISCOVERY_ONLY_TITLE:"Discovery only",CLOUD_CONNECTOR_PERMISSION_DISCOVERY_ONLY_DESC:"Odigos detects workloads in your account but can't change them. Pick this to evaluate before granting write access.",CLOUD_CONNECTOR_PERMISSION_DISCOVERY_INSTRUMENTATION_TITLE:"Discovery + instrumentation",CLOUD_CONNECTOR_PERMISSION_DISCOVERY_INSTRUMENTATION_DESC:"Odigos detects workloads and applies instrumentation automatically — the fastest way to start collecting telemetry.",CLOUD_CONNECTOR_PERMISSION_CUSTOM_TITLE:"Custom",CLOUD_CONNECTOR_PERMISSION_CUSTOM_DESC:"Choose exactly which resource types Odigos can discover and instrument.",CLOUD_CONNECTOR_POLICY_PREVIEW:"Policy preview",CLOUD_CONNECTOR_POLICY_NOTE:"The IAM policy below grants the permissions required to discover and instrument supported workloads.",CLOUD_CONNECTOR_POLICY_NOTE_CUSTOM:"The IAM policy below is generated from the resource types you selected.",CLOUD_CONNECTOR_CUSTOM_COL_TYPE:"Type",CLOUD_CONNECTOR_CUSTOM_COL_DISCOVERY:"Discovery",CLOUD_CONNECTOR_CUSTOM_COL_INSTRUMENTATION:"Instrumentation",CLOUD_CONNECTOR_SETUP_CREDENTIALS_TITLE:"Setup credentials",CLOUD_CONNECTOR_SETUP_CREDENTIALS_SUBTITLE:"Apply the selected IAM policy in AWS account.",CLOUD_CONNECTOR_AUTH_TITLE:"Choose Authentication method",CLOUD_CONNECTOR_AUTH_SUBTITLE:"Decide how Odigos authenticates with your AWS account.",CLOUD_CONNECTOR_AUTH_ASSUME_ROLE:"Assume Role",CLOUD_CONNECTOR_AUTH_STATIC_KEYS:"Static keys",CLOUD_CONNECTOR_AUTH_ASSUME_ROLE_NOTE:"Odigos assumes a scoped IAM role. No long-lived secrets are stored.",CLOUD_CONNECTOR_AUTH_STATIC_KEYS_NOTE:"Odigos uses long-lived access keys you provide. Rotate them regularly to keep your account secure.",CLOUD_CONNECTOR_SETUP_METHOD_TITLE:"Choose setup method",CLOUD_CONNECTOR_SETUP_METHOD_SUBTITLE:"Use the tool that best fits your workflow. The result is the same IAM role either way.",CLOUD_CONNECTOR_SETUP_METHOD_CLOUDFORMATION:"CloudFormation",CLOUD_CONNECTOR_SETUP_METHOD_TERRAFORM:"Terraform",CLOUD_CONNECTOR_SETUP_METHOD_AWS_CLI:"AWS CLI",CLOUD_CONNECTOR_SETUP_METHOD_MANUAL:"Manual",CLOUD_CONNECTOR_CREATE_ROLE_TITLE:"Create IAM role",CLOUD_CONNECTOR_CREATE_ROLE_STEPS_HEADING:"Follow these steps to create the role:",CLOUD_CONNECTOR_ENTER_ARN_TITLE:"Enter Role ARN",CLOUD_CONNECTOR_ENTER_ARN_SUBTITLE:"Paste the generated Role ARN into Odigos.",CLOUD_CONNECTOR_FIELD_ACCOUNT_ID_LABEL:"AWS Account ID",CLOUD_CONNECTOR_FIELD_ACCOUNT_ID_PLACEHOLDER:"Insert AWS account ID",CLOUD_CONNECTOR_FIELD_ACCOUNT_ID_HELP:"The 12-digit account ID where the IAM role or user lives.",CLOUD_CONNECTOR_FIELD_ACCESS_TOKEN_LABEL:"Access token",CLOUD_CONNECTOR_FIELD_ACCESS_TOKEN_PLACEHOLDER:"Insert access token",CLOUD_CONNECTOR_FIELD_ACCESS_TOKEN_HELP:"Paste the ARN of the IAM role you created.",CLOUD_CONNECTOR_FIELD_SECRET_ID_LABEL:"Secret ID",CLOUD_CONNECTOR_FIELD_SECRET_ID_PLACEHOLDER:"Insert secret ID",CLOUD_CONNECTOR_FIELD_SECRET_ID_HELP:"Paste the ARN of the IAM role you created.",CLOUD_CONNECTOR_VALIDATE_TITLE:"Validate connection",CLOUD_CONNECTOR_VALIDATE_SUBTITLE:"Odigos ran read-only checks against your AWS account.",CLOUD_CONNECTOR_VALIDATE_SUCCESS:"All checks passed. Your connection is ready.",CLOUD_CONNECTOR_VALIDATE_FAILURE:"Some checks failed. Review the details below and go back to fix your credentials or permissions.",CLOUD_CONNECTOR_VALIDATE_EMPTY:"No validation results yet.",CLOUD_CONNECTOR_VALIDATE_ACCOUNT:"Account",CLOUD_CONNECTOR_VALIDATE_IDENTITY:"Identity",CLOUD_CONNECTOR_TESTING_TITLE:"Verifying & creating connector...",CLOUD_CONNECTOR_CONNECTION_FAILED_TITLE:"Connection Failed",CLOUD_CONNECTOR_CONNECTION_FAILED_DEFAULT:"Odigos could not validate the connection. Review the error details below and retry.",CLOUD_CONNECTOR_CREATED_SUCCESS:"Connector created. It will appear in your connections list.",CLOUD_CONNECTOR_CREATED_MODAL_TITLE:"Connector created successfully!",CLOUD_CONNECTOR_CREATED_MODAL_DESC:"Your connector has been created and is now ready to start discovering workloads.",DATA_STREAM:"Data Stream",DATA_STREAMS:"Data Streams",STREAM_NAME:"Data Stream name",NAME_YOUR_STREAM:"Name your Data Stream",NAME_YOUR_STREAM_PLACEHOLDER:"e.g. Highest priority",STREAM_DESCRIPTION:"Provide a clear and descriptive name for your pipeline to ensure its purpose is easily understood by you and your team.",STREAM_CONFIRM:"Confirm your new Data Stream",RENAME_STREAM:e=>`Rename "${e}"`,DATA_STREAM_EXISTS_WARNING:(e,t)=>`A Data Stream with this name already exists, you can still rename the current "${e}", but it will merge into the existing "${t}".`,DATA_STREAM_MERGE_WARNING:(e,t)=>e?`A Data Stream named "${t}" already exists. Saving will merge "${e}" into "${t}" - both streams will share the same configuration going forward.`:`A Data Stream named "${t}" already exists. Saving will merge into "${t}" - the new stream will share the existing configuration going forward.`,ACTION:"Action",ACTIONS:"Actions",ADD_ACTION:"Add Action",ACTION_DETAILS:"Action Details",INSTRUMENTATION_RULE:"Instrumentation Rule",INSTRUMENTATION_RULES:"Instrumentation Rules",ADD_INSTRUMENTATION_RULE:"Add Instrumentation Rule",INSTRUMENTATION_RULE_DETAILS:"Instrumentation Rule Details",DESTINATION:"Destination",DESTINATIONS:"Destinations",ADD_DESTINATION:"Add Destination",ADD_DESTINATIONS:"Add Destinations",ADD_DESTINATION_DESCRIPTION:"Add a destination to send your telemetry data to. You can add multiple destinations.",DESTINATION_DETAILS:"Destination Details",SELECTED_DESTINATIONS:"Selected Destinations",SOURCE:"Source",SOURCES:"Sources",ADD_SOURCE:"Add Source",SOURCE_DETAILS:"Source Details",SELECT_SOURCES:"Select Sources",SELECTED_SOURCES:"Selected Sources",SELECT_SOURCES_DESCRIPTION:"Choose which sources to monitor in your pipeline.",NO_SOURCES:"No sources",NO_SOURCES_GO_BACK:"No sources selected. Please go back to select sources.",PLEASE_ADD_SOURCE:"Please add a source",NO_SOURCES_NAMESPACE:"No sources available in this namespace",TRY_SEARCH_OR_OTHER_NAMESPACE:"Try searching again or select another namespace.",PLEASE_MAKE_SURE_UNIGNORED_NAMESPACES:"Please make sure your cluster has unignored namespaces",INSTALLATION:"Installation",SOURCES_SETUP:"Sources setup",DESTINATIONS_SETUP:"Destinations setup",SUMMARY:"Summary",REVIEW_SETUP:"Review your setup and confirm your choices.",NO_SOURCES_SELECTED:"No sources selected",ADD_SOURCE_PROMPT:"Add at least one source to start collecting data",NO_DESTINATIONS_SELECTED:"No destinations selected",ADD_DESTINATION_PROMPT:"Add destination so your data has somewhere to go",GET_STARTED_WITH:"Get started with",GET_STARTED_DESCRIPTION:"First, select the sources you want Odigos to monitor. Next, choose where your data should be sent by configuring destinations.",TYPE:"Type",NOTES:"Notes",STATUS:"Status",INSTRUMENTATION_STATUS:"Instrumentation Status",INSTRUMENTATION:"Instrumentation",INSTRUMENTATION_DESCRIPTION:"Detected runtime and instrumentation applied to this source.",PROGRESS:"Progress",RUNTIME:"Runtime",LAST_UPDATED:"Last updated",ISSUES:"Issues",WAITING_FOR:"Waiting for",READONLY:"Readonly",LANGUAGE:"Language",VERSION:"Version",RUNTIME_VERSION:"Runtime Version",VERSION_PLACEHOLDER:"1.0.0",MONITORS:"Monitors",SIGNALS_FOR_PROCESSING:"Signals for Processing",MANAGED_BY_PROFILE:"Managed by Profile",TIER:"Tier",ENTERPRISE:"Enterprise",ENTERPRISE_TIER:"Enterprise Tier",COMMUNITY:"Community",COMMUNITY_TIER:"Community Tier",API_TOKEN:"API Token",API_TOKENS:"API Tokens",DESCRIBE_ODIGOS:"Describe Odigos",DESCRIBE_SOURCE:"Describe Source",OVERVIEW:"Overview",LIBRARIES:"Libraries",STANDARD_LIBRARY:"Standard Library",STANDARD:"Standard",PEER_SOURCES:"Peer Sources",PROFILING:"Profiling",INBOUND:"Inbound",OUTBOUND:"Outbound",INBOUND_DESCRIPTION:e=>`Services that send requests to ${e}`,OUTBOUND_DESCRIPTION:e=>`Services that ${e} sends requests to`,NO_INBOUND_CONNECTIONS_DESCRIPTION:"No services are currently sending requests to this source.",NO_OUTBOUND_CONNECTIONS_DESCRIPTION:"This source hasn't sent requests to other services yet.",NO_INBOUND_CONNECTIONS:"No inbound connections",NO_OUTBOUND_CONNECTIONS:"No outbound connections",COULD_NOT_FETCH_PEER_SOURCES:"Could not fetch peer sources",VIRTUAL:"Virtual",VIRTUAL_TOOLTIP:"This service is not instrumented/injected with Odigos, but we can still see it in the service map because it is connected to other services.",NO_RESULTS:"No results",NO_RESULTS_FOR_FILTER:e=>`No results matched the filter '${e}'`,POD:"Pod",PODS:"Pods",PODS_HEALTHY:"Pods are healthy",PODS_NOT_HEALTHY:"Pods are not healthy",NO_RUNNING_PODS:"No running pods",NO_RUNNING_PODS_SUBTITLE:"Check if you have any running pods and try again",AGENT_INJECTED:"Agent injected",AGENT_NOT_INJECTED:"Agent not injected",KUBERNETES_HEALTHY:"Kubernetes healthy",ODIGOS_HEALTHY:"Odigos healthy",HEALTHY:"Healthy",UNHEALTHY:"Unhealthy",NOT_HEALTHY:"Not Healthy",NODE:"Node",AGE:"Age",RUNNING_TIME:"Running Time",RUNNING_TIME_TOOLTIP:"Time elapsed since the container was last started and entered the Running state",NOT_RUNNING:"Not Running",RESTARTS:"Restarts",LATEST_REVISION:"Latest Revision",OLD_REVISION:"Old Revision",READY:"Ready",NOT_READY:"Not Ready",STARTED:"Started",NOT_STARTED:"Not Started",CRASHLOOP:"Crashloop",NO_CRASHLOOP:"No Crashloop",CRASHLOOP_BACKOFF:"Crashloop backoff",CANNOT_POOL_IMAGE:"Cannot pool image",DEVICE_NAME:"Device Name",INSTRUMENTED:"Instrumented",UNINSTRUMENTED:"Uninstrumented",INSTRUMENTED_WITH_DISTRO:e=>`Instrumented | ${e}`,DEBUG_COMMANDS:"Debug Commands",YAML:"YAML",YAML_FILES:"YAML Files",GET_POD_YAML:"Get Pod YAML",GET_POD_LOGS:"Get Pod Logs",DESCRIBE_POD:"Describe Pod",CONTAINER:"Container",CONTAINERS:"Containers",DETECTED_CONTAINERS:"Detected Containers",DETECTED_CONTAINERS_DESCRIPTION:"The system automatically instruments the containers it detects with a supported programming language.",NO_CONTAINERS_DETECTED:"No containers detected",DETECTED_PROCESSES:"Detected Processes",DETECTED_PROCESSES_DESCRIPTION:"The system automatically instruments the processes it detects with a supported programming language.",NO_PROCESSES_DETECTED:"No processes detected",CONTAINER_NAME:"Container Name",PROCESS:"Process",PROCESSES:"Processes",PROCESS_FALLBACK_NAME:"process",PROCESS_PID:"PID",EXECUTABLE:"Executable",COMMAND:"Command",OPEN_IN_POD_TAB:"Open in 'Pod' tab",OPEN_IN_SAMPLING_PAGE:"Open in 'Sampling' page",ALL_CONTAINERS_HEALTHY:e=>`All ${e} containers are healthy`,ALL_PROCESSES_HEALTHY:e=>`All ${e} processes are healthy`,PID:e=>`#${e}`,IDENTIFYING_ATTRIBUTES:"Identifying Attributes",INSTRUMENTATION_LIBRARIES:"Instrumentation Libraries",INSTRUMENTED_LIBRARIES:"Instrumented Libraries",FILTERED_COUNT_TOOLTIP:"Represents filtered amount, out of total amount",SEARCH_NAMESPACES:"Search Namespaces",SEARCH_SOURCES:"Search Sources",SELECT_ALL:"Select all",UNSELECT_ALL:"Unselect all",ONLY_SELECTED:"Only selected",ONLY_RUNNING_INSTANCES:"Only running instances",TO_COLLECT_OTEL_DATA:"To collect OpenTelemetry data",TO_MONITOR_OTEL_DATA:"To monitor OpenTelemetry data",TO_MODIFY_OTEL_DATA:"To modify OpenTelemetry data",NO_DATA_INSTRUMENTATION_RULES:"To configure how telemetry is collected",NO_DATA_SOURCES:"To start collecting telemetry from a Kubernetes workload",NO_DATA_ACTIONS:"To process telemetry before export",NO_DATA_DESTINATIONS:"To send telemetry to an observability backend",QUICK_BACK_TO_SUMMARY:"When you finish editing you can quickly go back to the summary.",GO_TO_SUMMARY:"Go to summary",FUTURE_APPS_TITLE:"Instrument entire namespace",FUTURE_APPS_DESCRIPTION:"When enabled, all applications in the namespace and new applications will be instrumented automatically and included in the current data stream using a Namespace Source.",OVERIDE:"Override",OVERIDDEN:"Overridden",OVERRIDE_RUNTIME_DETAILS:"Override Runtime Details",OVERRIDE_RUNTIME_DETAILS_SUBTITLE:"Use when multiple languages exist in the same container or when Odigos is unable to detect the application language",OVERRIDE_RUNTIME_WARNING:"This is an advanced configuration. If the selected programming language is incorrect, data collection may be incomplete or may not occur at all.",OVERRIDE_OTEL_DISTRO_NAME:"Override OpenTelemetry distro name",OVERRIDE_OTEL_DISTRO_NAME_SUBTITLE:"Use to set a specific Odigos OpenTelemetry distribution",OVERRIDE_OTEL_DISTRO_NAME_WARNING:"This is an advanced configuration. If the selected OpenTelemetry distro name is incorrect, data collection may be incomplete or may not occur at all.",OVERRIDE_OTEL_DISTRO_NAME_SAVE_TOOLTIP:"Use the provided OpenTelemetry distro name to instrument this container",OVERRIDE_OTEL_DISTRO_NAME_DELETE_TOOLTIP:"Remove manual override of OpenTelemetry distro name, and use Odigos automatic detection OpenTelemetry distro name for instrumentation",OVERRIDE_RUNTIME_DETAILS_SAVE_TOOLTIP:"Use the provided runtime details to instrument this container",OVERRIDE_RUNTIME_DETAILS_DELETE_TOOLTIP:"Remove manual override of runtime details, and use Odigos automatic detection runtime details for instrumentation",OTEL_DISTRO_NAME:"OpenTelemetry distro name",WAITING_FOR_RUNTIME_DETECTION:"Waiting for runtime detection...",DETECTING_RUNTIME_INFO:"Detecting runtime info",NO_AVAILABLE_AGENT:"No available agent",ACTIVE:"Active",INACTIVE:"Inactive",ENABLED:"Enabled",DISABLED:"Disabled",NO_TRACES_FOUND:"No traces found",ARE_SERVICES_INSTRUMENTED_AND_PRODUCING_TRAFFIC:"Are your services instrumented & producing traffic?",JAVA_CUSTOM_PROBES:"Java Custom Probes",GOLANG_CUSTOM_PROBES:"Golang Custom Probes",ROLLOUT:"Rollout",ROLLOUT_RESTART:"Rollout Restart",ROLLOUT_RESTART_WORKLOADS_DESCRIPTION:"Are you sure you want to rollout restart these workloads?",ROLLOUT_NOT_REQUIRED:"Rollout Not Required",ROLLOUT_NOT_REQUIRED_MESSAGE:"This source is instrumented with eBPF and does not require a restart.",ROLLOUT_FAILED:"Rollout Failed",ROLLOUT_PREVIOUS_ONGOING:"Previous Rollout Ongoing",ROLLOUT_PREVIOUS_ONGOING_MESSAGE:"A previous rollout is ongoing. Please wait for it to finish before triggering a new one.",ROLLOUT_AUTO_DISABLED:"Auto Rollout Disabled",ROLLOUT_AUTO_DISABLED_MESSAGE:"Trigger a manual rollout to inject the agent.",ROLLOUT_FINISHED:"Rollout Finished",ROLLOUT_FINISHED_MESSAGE:"All pods have been updated and are healthy.",ROLLBACK:"Rollback",ROLLBACK_OCCURRED:"Rollback Occurred",ROLLBACK_OCCURRED_MESSAGE:"Odigos detected a crash and rolled back instrumentation to protect your workload.",ROLLBACK_SUCCESS:"Rollback Success",ROLLBACK_RECOVER:"Recover",FETCHING_NAMESPACES:"Fetching namespaces",FETCHING_NAMESPACES_SUBTITLE:"Please wait while we fetch the namespaces",ADD_SOURCES_DESCRIPTION:"Choose which sources to monitor in your pipeline.",CREATING_SOURCES:"Creating Sources...",CREATING_SOURCES_SUBTITLE:"This may take a few moments while sources are being created.",SELECT_NAMESPACE:"Select namespace from the list",SELECT_NAMESPACE_SUBTITLE:"Add namespace so you can select workloads from it.",CREATING_ACTION:"Creating action",CREATING_ACTION_SUBTITLE:"Please wait while we create the action",ADD_ACTION_DESCRIPTION:"Select an action to modify telemetry data before it's sent to destinations. Choose an action type and configure its details.",CREATING_INSTRUMENTATION_RULE:"Creating instrumentation rule",CREATING_INSTRUMENTATION_RULE_SUBTITLE:"Please wait while we create the instrumentation rule",ADD_INSTRUMENTATION_RULE_DESCRIPTION:"Define how telemetry is recorded from your application. Choose a rule type and configure the details.",CREATING_DESTINATION:"Creating destination",CREATING_DESTINATION_SUBTITLE:"Please wait while we create the destination",ADD_DESTINATION_DRAWER_DESCRIPTION:"Add backend destination you want to connect with Odigos.",THROUGHPUT_LAST_10_SECONDS:"Throughput (last 10 seconds)",DELETE_POD_TO_RESTART:"Delete Pod to Restart",DEBUG:"Debug",SAMPLING:"Sampling",HEAD_SAMPLING:"Head Sampling",TAIL_SAMPLING:"Tail Sampling",NOISY_OPERATIONS:"Noisy Operations",HIGHLY_RELEVANT_OPERATIONS:"Highly Relevant Operations",COST_REDUCTION_OPERATIONS:"Cost Reduction Operations"},Cn={GET_STARTED:"Get started",ADD:"Add",ADD_NEW:"Add New",CREATE_NEW:"Create new",NEW:"New",SELECT:"Select",CREATE:"Create",UPDATE:"Update",EDIT:"Edit",DELETE:"Delete",RESTART:"Restart",RESTART_POD:"Restart pod",REFRESH:"Refresh",CANCEL:"Cancel",CLOSE:"Close",DONE:"Done",SAVE:"Save",BACK:"Back",CONFIRM:"Confirm",NEXT:"Next",VERIFY:"Verify",VERIFY_AND_CREATE_CONNECTOR:"Verify & Create Connector",STAY_ON_CONNECTIONS:"Stay on connections page",GO_TO_CONNECTOR_OVERVIEW:"Go to connector overview",RETRY:"Retry",TEST:"Test",TEST_CONNECTION:"Test Connection",INSTRUMENT:"Instrument",UNINSTRUMENT:"Uninstrument"},xn=(e,t)=>e===wo.Success?$n.HEALTHY:e===wo.Error?$n.NOT_HEALTHY:ln(t),wn=e=>{if(!e)return null;switch(e){case ko.Irrelevant:return null;case ko.Failure:case ko.Error:return wo.Error;case ko.Notice:return wo.Warning;case ko.Pending:case ko.Waiting:return wo.Loading;case ko.Unsupported:case ko.Disabled:return wo.Disabled;case ko.Success:return wo.Success;case ko.Unknown:default:return wo.Info}},Tn=(e,t,o="reason",n)=>{const r=wn(e?.status);return r?{key:`desired-status-${e?.name}`,status:r,leftIcon:t||(r===wo.Success?v:E),label:n||("reason"===o?ln(e?.reasonEnum):xn(r,e?.reasonEnum)),tooltip:e?.message,textSize:dn.XXXS,invertColors:!0,useSecondaryTone:!0}:null},On=e=>e.charAt(0).toUpperCase()+e.slice(1),Nn=e=>{const t=e=>e.filter(e=>"object"==typeof e&&null!==e?""!==e.key&&""!==e.value:""!==e),o=e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>""!==e&&""!==t).map(([e,n])=>Array.isArray(n)?[e,t(n)]:"object"==typeof n&&null!==n?[e,o(n)]:[e,n]));return Object.entries(e).reduce((e,[n,r])=>{try{const i=JSON.parse(r);Array.isArray(i)?e[n]=JSON.stringify(t(i)):e[n]="object"==typeof i&&null!==i?JSON.stringify(o(i)):r}catch(i){"object"==typeof r&&null!==r?Array.isArray(r)?e[n]=JSON.stringify(t(r)):e[n]=JSON.stringify(o(r)):e[n]=r}return e},{})};var In;(e=>{e.SIGNALS="SIGNALS"})(In||(In={}));const An=(e,t,o)=>{if(!e||!e.length)return!0;if(1===e.length)return"true"==e[0];const[n,r,i]=e;if(n===In.SIGNALS)switch(r){case"INCLUDES":return t?.includes(i);case"EXCLUDES":return!t?.includes(i);default:return!0}const a=o.find(e=>e.name===n||e.key===n);if(!a)return!1;const s=null==a.value?"":String(a.value);switch(r){case"===":case"==":return s===i;case"!==":case"!=":return s!==i;case">":return Number(s)>Number(i);case"<":return Number(s)<Number(i);case">=":return Number(s)>=Number(i);case"<=":return Number(s)<=Number(i);default:return!0}},_n=e=>JSON.parse(JSON.stringify(e)),Rn=(e,t)=>t.split(".").reduce((e,t)=>e?.[t],e),Dn=(e,t,o)=>{const n=t.split(".");let r=e;for(let e=0;e<n.length-1;e++)n[e]in r&&"object"==typeof r[n[e]]||(r[n[e]]={}),r=r[n[e]];r[n[n.length-1]]=o},kn=(e,t)=>{let o=[...e];return t.monitors?.length&&(o=o.filter(e=>!!t.monitors?.find(t=>e.signals?.find(e=>e.toLowerCase()===t.id)))),o},Ln=(e,t)=>{let o=[...e];return t.monitors?.length&&(o=o.filter(e=>!!t.monitors?.find(t=>e.exportedSignals[t.id]))),o},Pn=(e,t)=>t?e.filter(e=>e.dataStreamNames.includes(t)||!e.dataStreamNames.length):[],Un=(e,t)=>{let o=e;if(t.namespaces?.length){const e=new Set(t.namespaces.map(({id:e})=>e));o=o.filter(({id:t})=>e.has(t.namespace))}if(t.kinds?.length){const e=new Set(t.kinds.map(({id:e})=>e));o=o.filter(({id:t})=>e.has(t.kind))}if(t.languages?.length){const e=new Set(t.languages.map(({id:e})=>e));o=o.filter(({runtimeInfo:t,containers:o})=>t?.detectedLanguages?.some(t=>e.has(t))||o?.some(t=>{const o=t.overrides?.runtimeInfo?.language??t.runtimeInfo?.language;return!!o&&e.has(o)}))}if(t.podsAgentInjectionStatus?.length){const e=new Set(t.podsAgentInjectionStatus.map(({id:e})=>e));o=o.filter(({podsAgentInjectionStatus:t})=>e.has(t?.reasonEnum??"")||e.has(t?.message??""))}return t.onlyErrors&&(o=o.filter(e=>wn(e.workloadOdigosHealthStatus?.status)===wo.Error)),o},Mn=(e,t)=>t?e.filter(e=>e.dataStreamNames?.includes(t)||t===yn&&!e.dataStreamNames?.length):[],Fn=(e,t="",o={})=>{for(const n in e)if(e.hasOwnProperty(n)){const r=e[n],i=t?`${t}.${n}`:n;null===r||"object"!=typeof r||Array.isArray(r)?Array.isArray(r)?r.forEach((e,t)=>{const n=`${i}[${t}]`;null!==e&&"object"==typeof e?Fn(e,n,o):o[n]=e}):o[i]=r:Fn(r,i,o)}return o},zn=e=>{if(!e)return"0 KB/s";const t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(0===t?0:1)} ${["Bytes/s","KB/s","MB/s","GB/s","TB/s"][t]}`},Bn=e=>{if(!e)return"0 ns";if(e<1e3)return`${e.toFixed(0)} ns`;if(e<1e6){const t=e/1e3;return`${t.toFixed(t<10?2:0)} μs`}if(e<1e9){const t=e/1e6;return`${t.toFixed(t<10?2:0)} ms`}if(e<6e10){const t=e/1e9;return`${t.toFixed(t<10?2:0)} s`}if(e<36e11){const t=e/6e10;return`${t.toFixed(t<10?2:0)} m`}if(e<864e11){const t=e/36e11;return`${t.toFixed(t<10?2:0)} h`}{const t=e/864e11;return`${t.toFixed(t<10?2:0)} d`}},Hn=()=>{const e=crypto.getRandomValues(new Uint8Array(16));let t=0;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,o=>{const n=e[t%16];return t++,("1"===o?n:"0"===o?63&n|128:15&n|64).toString(16)})},Wn=e=>{if(!e)return jn([]);if(Array.isArray(e))return jn(e);const t=Object.values(e).reduce((e,t)=>{if(null!=t){const o=wn(t.status);o&&e.push({status:o,type:t.name??"",reason:t.reasonEnum??null,message:t.message??null})}return e},[]);return jn(t)},jn=e=>{const t=e?.filter(({status:e})=>e===wo.Error),o=e?.filter(({status:e})=>e===wo.Warning),n=e?.filter(({status:e})=>e===wo.Disabled),r=e?.filter(({status:e})=>e===wo.Loading),i=t.length>0,a=o.length>0,s=n.length>0;return{errors:t,hasErrors:i,warnings:o,hasWarnings:a,disableds:n,hasDisableds:s,loadings:r,hasLoadings:r.length>0,priorotizedStatus:i?wo.Error:a?wo.Warning:s?wo.Info:void 0}},Gn=e=>{const t=e?.reduce((e,t)=>t.agentEnabled?.agentEnabled?e+1:e,0);return`${t}/${e?.length||0} instrumented`},Xn=e=>({[vo.Java]:U,[vo.Go]:P,[vo.JavaScript]:L,[vo.Python]:k,[vo.DotNet]:D,[vo.CSharp]:R,[vo.CPlusPlus]:_,[vo.Php]:A,[vo.Ruby]:I,[vo.Rust]:N,[vo.Swift]:O,[vo.Elixir]:T,[vo.MySql]:w,[vo.Nginx]:x,[vo.Postgres]:C,[vo.Redis]:$,[vo.Kafka]:S,[vo.Ignored]:g,[vo.Unknown]:g,[vo.Processing]:g,[vo.NoContainers]:g,[vo.NoRunningPods]:g}[e]||g),Vn=e=>e?e.overrides?.runtimeInfo?.language??e.runtimeInfo?.language??vo.Unknown:vo.Unknown,Kn=e=>e?e.overrides?.runtimeInfo?.runtimeVersion??e.runtimeInfo?.runtimeVersion??null:null,Yn=e=>e?.map(e=>Xn(Vn(e)))||[],Jn=e=>e?.map(e=>Xn(e))||[],qn=e=>e.runtimeInfo?.detectedLanguages?.length?Jn(e.runtimeInfo?.detectedLanguages):Yn(e.containers),Qn=(e,t)=>{const o={[_o.Alauda]:He,[_o.AlibabaCloud]:Be,[_o.AppDynamics]:ze,[_o.Axiom]:Fe,[_o.AzureBlob]:Me,[_o.AzureMonitor]:Ue,[_o.BetterStack]:Pe,[_o.Bonree]:Le,[_o.Causely]:ke,[_o.Checkly]:De,[_o.Chronosphere]:Re,[_o.ClickHouse]:_e,[_o.CloudWatch]:Ae,[_o.Coralogix]:Ie,[_o.Dash0]:Ne,[_o.Datadog]:Oe,[_o.Dynamic]:te,[_o.Dynatrace]:Te,[_o.ElasticApm]:we,[_o.ElasticSearch]:xe,[_o.GoogleCloud]:Ce,[_o.GoogleCloudOTLP]:Ce,[_o.GrafanaCloudLoki]:$e,[_o.GrafanaCloudPrometheus]:$e,[_o.GrafanaCloudTempo]:$e,[_o.Greptime]:Se,[_o.Groundcover]:Ee,[_o.Honeycomb]:ve,[_o.HyperDX]:be,[_o.Instana]:ye,[_o.Jaeger]:fe,[_o.Kafka]:S,[_o.Kloudmate]:me,[_o.Last9]:ge,[_o.Lightstep]:he,[_o.LogzIo]:pe,[_o.Loki]:ue,[_o.Lumigo]:de,[_o.Middleware]:ce,[_o.NewRelic]:le,[_o.Observe]:se,[_o.Odigos]:ae,[_o.OneUptime]:ie,[_o.OpenObserve]:re,[_o.Opsverse]:ne,[_o.Oracle]:oe,[_o.OTLP]:te,[_o.OTLPHttp]:te,[_o.Prometheus]:ee,[_o.Qryn]:Z,[_o.QrynOss]:Q,[_o.Quickwit]:q,[_o.S3]:J,[_o.Seq]:Y,[_o.Signalfx]:V,[_o.Signoz]:K,[_o.Splunk]:V,[_o.SplunkSapm]:V,[_o.SplunkOtlp]:V,[_o.SumoLogic]:X,[_o.TelemetryHub]:G,[_o.Tempo]:j,[_o.Tingyun]:W,[_o.Traceloop]:H,[_o.Uptrace]:B,[_o.VictoriaMetrics]:z,[_o.VictoriaMetricsCloud]:z,[_o.XRay]:F,[_o.Pyroscope]:M}[e];return o&&!t?{icon:o}:{iconSrc:`https://d15jtxgb40qetw.cloudfront.net/${e}.svg`}},Zn=e=>({[So.Namespace]:Ve,[So.Source]:Xe,[So.Destination]:Ge,[So.Action]:l,[So.InstrumentationRule]:je,[So.SamplingRule]:We}[e]),er=e=>"ruleId"in e&&e.ruleId?e.ruleId:"id"in e&&"string"==typeof e.id&&e.id||"id"in e&&"object"==typeof e.id&&e.id.namespace&&e.id.kind&&e.id.name?e.id:"namespace"in e&&e.namespace&&"kind"in e&&e.kind&&"name"in e&&e.name?{namespace:e.namespace,name:e.name,kind:e.kind,..."region"in e&&e.region?{region:e.region}:{}}:"name"in e&&e.name?e.name:void 0,tr=e=>{if(!e)return"";if("string"==typeof e)return e;const t=`${e.namespace}/${e.kind}/${e.name}`;return e.region?`${t}/${e.region}`:t},or=e=>tr(er(e)),nr=(e,t,o)=>{const{extended:n,prioritizeDisplayName:r}=o||{};let i="",a="";switch(t){case So.InstrumentationRule:const t=e;i=t.type,a=t.ruleName;break;case So.Source:const o=e;i=o.id.name,a=o.serviceName||"";break;case So.Action:const n=e;i=n.type,a=n.name||"";break;case So.Destination:const r=e;i=r.destinationType.displayName,a=r.name;break;case So.Namespace:const s=e;i=s.name,a=s.name}return n?i+(a&&a!==i?` (${a})`:""):r&&a||i},rr=(e,t)=>{if(t===So.Source){const t={namespace:"",name:"",kind:""};return e.split("&").forEach(e=>{const[o,n]=e.split("=");t[o]=n}),t}return e},ir=e=>e.overrides?.runtimeInfo?.language??e.runtimeInfo?.language??vo.Unknown,ar=e=>{const{numberOfInstances:t,containers:o}=e;if(!o)return t&&t>0?vo.Processing:vo.NoRunningPods;const n=o?.filter(e=>ir(e)!==vo.Ignored);if(!n.length)return vo.NoContainers;const r=n.find(e=>ir(e)!==vo.Unknown);return r?ir(r):vo.Unknown},sr=(e,t,o)=>(t===So.Source?e?.sources.find(e=>e.kind===o.kind&&e.name===o.name&&e.namespace===o.namespace):e?.destinations.find(e=>e.id===o))||{throughput:0},lr=e=>({[jo.Logs]:Je,[jo.Metrics]:Ye,[jo.Traces]:Ke,[jo.Profiles]:ae}[e]),cr=(e,t)=>Object.values(dn).reduce((o,n)=>Math.abs(t[n]-e)<Math.abs(t[o]-e)?n:o),dr=e=>e?{[fo.K8s]:h,[fo.Vm]:Qe,[fo.Connector]:qe}[e]:ae,ur=e=>e?{[fo.K8s]:"Kubernetes Cluster",[fo.Vm]:"Virtual Machine",[fo.Connector]:"Cloud Connector"}[e]:"Unknown",pr=(e,t,o)=>{const n=e[t];return n?n.flatMap(e=>{const n=e[o],r=[];return void 0!==n&&(Array.isArray(n)?r.push(...n):r.push(n)),r.push(...pr(e,t,o)),r}):[]},hr={"aws.lambda":"AWS Lambda","aws.fargate-task":"ECS Fargate Task","aws.fargate-cluster":"ECS Fargate Cluster","aws.ecs-cluster":"ECS Cluster","aws.eks":"Amazon EKS","aws.ec2":"Amazon EC2"},gr=e=>{if(!e)return"";if(hr[e])return hr[e];if(e.includes(".")){return e.slice(e.indexOf(".")+1).split(/[-_]/).map(e=>e?e[0].toUpperCase()+e.slice(1):e).join(" ")}return e},mr=(e,t)=>{if(t===So.Source){let t="";return Object.entries(e).forEach(([e,o])=>{t+=`${e}=${o}&`}),t.slice(0,-1),t}return e},fr=(e,t,o)=>{switch(o=o??"500",t){case wo.Default:return e.v2.colors.purple[o];case wo.Info:return e.v2.colors.blue[o];case wo.Error:return e.v2.colors.red[o];case wo.Warning:return e.v2.colors.yellow[o];case wo.Success:return e.v2.colors.green[o];case wo.Loading:case wo.Disabled:case wo.Unknown:return e.v2.colors.silver[o];default:return e.v2.colors.white[500]}},yr=e=>{switch(e){case zo.Updating:case Bo.Pending:case Ho.ContainerCreating:case Wo.Waiting:return wo.Info;case zo.Healthy:case Bo.Succeeded:case Bo.Running:case Ho.Running:case Wo.Running:return wo.Success;case zo.Degraded:return wo.Warning;case zo.Failed:case Bo.Failed:case Ho.Error:case Ho.CrashLoopBackOff:case Ho.CreateContainerError:case Ho.CreateContainerConfigError:case Ho.ErrImagePull:case Ho.ErrImageNeverPull:case Ho.ImagePullBackOff:case Ho.InvalidImageName:case Ho.RegistryUnavailable:case Ho.NetworkNotReady:case Ho.OOMKilled:case Ho.ContainerCannotRun:case Wo.Terminated:case Ho.DeadlineExceeded:case Ho.StartError:return wo.Error;case zo.Down:case Ho.Completed:return wo.Disabled;case zo.Unknown:case Bo.Unknown:default:return wo.Unknown}},br=n.div`
|
|
41
|
+
`,mn=Ut(({children:o,variant:n=cn.P,color:r,size:i=dn.S,weight:a=400,opacity:s=1,align:l="left",lineHeight:c,transform:d,nowrap:u,underline:p,onClick:h,disabled:g,maxLines:m,...f},y)=>{const b=o?.toString().split("\n")||[];return e(gn,{ref:y,as:n,$color:r,$size:i,$weight:a,$opacity:s,$align:l,$lineHeight:c,$transform:d,$nowrap:u,$underline:p,$maxLines:m,$withClick:!!h&&!g,onClick:g?void 0:h,...f,children:b.map((o,n)=>t(Mt,{children:[o,n!==b.length-1&&e("br",{})]},`typography-${n}-${o}`))})});mn.displayName="Typography";const fn="https://docs.odigos.io",yn="default",bn="this-cluster",vn="This Cluster",En={SELECTED_DATA_STREAM:"SELECTED_DATA_STREAM",SELECTED_DATA_STREAM_WITH_PROXY:e=>`SELECTED_DATA_STREAM_${e}`,OVERVIEW_FILTERS:"OVERVIEW_FILTERS",DARK_MODE:"DARK_MODE"},Sn={REQUIRED_FIELDS:"Required fields are missing",FIELD_IS_REQUIRED:"This field is required",FORBIDDEN:"Forbidden",ENTERPRISE_ONLY:(e="This")=>`${e} is an Enterprise feature. Please upgrade your plan.`,DEFINED_FOR_ALL_STREAMS:e=>`${e} are defined for all Data Streams.`,CANNOT_EDIT_RULE:"Cannot edit a system-managed instrumentation rule",CANNOT_DELETE_RULE:"Cannot delete a system-managed instrumentation rule",LATENCY_HTTP_ROUTE:'HTTP route must start with a forward slash "/"',READONLY_WARNING:"You're not allowed to create/update/delete in readonly mode",ILLEGAL_K8S_LABEL:'Must be 63 characters or less, must consist of alphanumeric characters, "-", "_", or ".", and must start & end with an alphanumeric character (e.g., my-name, 123.abc).',INVALID_VERSION:'Invalid version format, must be in the format of "major.minor.patch" (e.g. 1.0.0)'},$n={NAMESPACE:"Namespace",NAME:"Name",KIND:"Kind",REGION:"Region",SERVICE_NAME:"Service Name",CONNECTION:"Connection",CONNECTIONS:"Connections",CLOUD_CONNECTOR:"Cloud Connector",CREATE_CLOUD_CONNECTOR:"Create Cloud Connector",CLOUD_CONNECTOR_SELECT_PROVIDER_TITLE:"Connect a cloud or SaaS account to Odigos Central",CLOUD_CONNECTOR_SELECT_PROVIDER_SUBTITLE:"Choose a provider and decide how much access Odigos should have in your account.",CLOUD_CONNECTOR_PERMISSIONS_NOTE:"Cloud connectors require a platform account with cross-account IAM trust and scoped permissions for Odigos Central (e.g. sts:AssumeRole plus discovery/instrumentation policies). Organizations without these privileges cannot complete this workflow.",CLOUD_CONNECTOR_PERMISSION_DISCOVERY_ONLY_TITLE:"Discovery only",CLOUD_CONNECTOR_PERMISSION_DISCOVERY_ONLY_DESC:"Odigos detects workloads in your account but can't change them. Pick this to evaluate before granting write access.",CLOUD_CONNECTOR_PERMISSION_DISCOVERY_INSTRUMENTATION_TITLE:"Discovery + instrumentation",CLOUD_CONNECTOR_PERMISSION_DISCOVERY_INSTRUMENTATION_DESC:"Odigos detects workloads and applies instrumentation automatically — the fastest way to start collecting telemetry.",CLOUD_CONNECTOR_PERMISSION_CUSTOM_TITLE:"Custom",CLOUD_CONNECTOR_PERMISSION_CUSTOM_DESC:"Choose exactly which resource types Odigos can discover and instrument.",CLOUD_CONNECTOR_POLICY_PREVIEW:"Policy preview",CLOUD_CONNECTOR_POLICY_NOTE:"The IAM policy below grants the permissions required to discover and instrument supported workloads.",CLOUD_CONNECTOR_POLICY_NOTE_CUSTOM:"The IAM policy below is generated from the resource types you selected.",CLOUD_CONNECTOR_CUSTOM_COL_TYPE:"Type",CLOUD_CONNECTOR_CUSTOM_COL_DISCOVERY:"Discovery",CLOUD_CONNECTOR_CUSTOM_COL_INSTRUMENTATION:"Instrumentation",CLOUD_CONNECTOR_SETUP_CREDENTIALS_TITLE:"Setup credentials",CLOUD_CONNECTOR_SETUP_CREDENTIALS_SUBTITLE:"Apply the selected IAM policy in AWS account.",CLOUD_CONNECTOR_AUTH_TITLE:"Choose Authentication method",CLOUD_CONNECTOR_AUTH_SUBTITLE:"Decide how Odigos authenticates with your AWS account.",CLOUD_CONNECTOR_AUTH_ASSUME_ROLE:"Assume Role",CLOUD_CONNECTOR_AUTH_STATIC_KEYS:"Static keys",CLOUD_CONNECTOR_AUTH_ASSUME_ROLE_NOTE:"Odigos assumes a scoped IAM role. No long-lived secrets are stored.",CLOUD_CONNECTOR_AUTH_STATIC_KEYS_NOTE:"Odigos uses long-lived access keys you provide. Rotate them regularly to keep your account secure.",CLOUD_CONNECTOR_SETUP_METHOD_TITLE:"Choose setup method",CLOUD_CONNECTOR_SETUP_METHOD_SUBTITLE:"Use the tool that best fits your workflow. The result is the same IAM role either way.",CLOUD_CONNECTOR_SETUP_METHOD_CLOUDFORMATION:"CloudFormation",CLOUD_CONNECTOR_SETUP_METHOD_TERRAFORM:"Terraform",CLOUD_CONNECTOR_SETUP_METHOD_AWS_CLI:"AWS CLI",CLOUD_CONNECTOR_SETUP_METHOD_MANUAL:"Manual",CLOUD_CONNECTOR_CREATE_ROLE_TITLE:"Create IAM role",CLOUD_CONNECTOR_CREATE_ROLE_STEPS_HEADING:"Follow these steps to create the role:",CLOUD_CONNECTOR_ENTER_ARN_TITLE:"Enter Role ARN",CLOUD_CONNECTOR_ENTER_ARN_SUBTITLE:"Paste the generated Role ARN into Odigos.",CLOUD_CONNECTOR_FIELD_ACCOUNT_ID_LABEL:"AWS Account ID",CLOUD_CONNECTOR_FIELD_ACCOUNT_ID_PLACEHOLDER:"Insert AWS account ID",CLOUD_CONNECTOR_FIELD_ACCOUNT_ID_HELP:"The 12-digit account ID where the IAM role or user lives.",CLOUD_CONNECTOR_FIELD_ACCESS_TOKEN_LABEL:"Access token",CLOUD_CONNECTOR_FIELD_ACCESS_TOKEN_PLACEHOLDER:"Insert access token",CLOUD_CONNECTOR_FIELD_ACCESS_TOKEN_HELP:"Paste the ARN of the IAM role you created.",CLOUD_CONNECTOR_FIELD_SECRET_ID_LABEL:"Secret ID",CLOUD_CONNECTOR_FIELD_SECRET_ID_PLACEHOLDER:"Insert secret ID",CLOUD_CONNECTOR_FIELD_SECRET_ID_HELP:"Paste the ARN of the IAM role you created.",CLOUD_CONNECTOR_VALIDATE_TITLE:"Validate connection",CLOUD_CONNECTOR_VALIDATE_SUBTITLE:"Odigos ran read-only checks against your AWS account.",CLOUD_CONNECTOR_VALIDATE_SUCCESS:"All checks passed. Your connection is ready.",CLOUD_CONNECTOR_VALIDATE_FAILURE:"Some checks failed. Review the details below and go back to fix your credentials or permissions.",CLOUD_CONNECTOR_VALIDATE_EMPTY:"No validation results yet.",CLOUD_CONNECTOR_VALIDATE_ACCOUNT:"Account",CLOUD_CONNECTOR_VALIDATE_IDENTITY:"Identity",CLOUD_CONNECTOR_TESTING_TITLE:"Verifying & creating connector...",CLOUD_CONNECTOR_CONNECTION_FAILED_TITLE:"Connection Failed",CLOUD_CONNECTOR_CONNECTION_FAILED_DEFAULT:"Odigos could not validate the connection. Review the error details below and retry.",CLOUD_CONNECTOR_CREATED_SUCCESS:"Connector created. It will appear in your connections list.",CLOUD_CONNECTOR_CREATED_MODAL_TITLE:"Connector created successfully!",CLOUD_CONNECTOR_CREATED_MODAL_DESC:"Your connector has been created and is now ready to start discovering workloads.",DATA_STREAM:"Data Stream",DATA_STREAMS:"Data Streams",STREAM_NAME:"Data Stream name",NAME_YOUR_STREAM:"Name your Data Stream",NAME_YOUR_STREAM_PLACEHOLDER:"e.g. Highest priority",STREAM_DESCRIPTION:"Provide a clear and descriptive name for your pipeline to ensure its purpose is easily understood by you and your team.",STREAM_CONFIRM:"Confirm your new Data Stream",RENAME_STREAM:e=>`Rename "${e}"`,DATA_STREAM_EXISTS_WARNING:(e,t)=>`A Data Stream with this name already exists, you can still rename the current "${e}", but it will merge into the existing "${t}".`,DATA_STREAM_MERGE_WARNING:(e,t)=>e?`A Data Stream named "${t}" already exists. Saving will merge "${e}" into "${t}" - both streams will share the same configuration going forward.`:`A Data Stream named "${t}" already exists. Saving will merge into "${t}" - the new stream will share the existing configuration going forward.`,ACTION:"Action",ACTIONS:"Actions",ADD_ACTION:"Add Action",ACTION_DETAILS:"Action Details",INSTRUMENTATION_RULE:"Instrumentation Rule",INSTRUMENTATION_RULES:"Instrumentation Rules",ADD_INSTRUMENTATION_RULE:"Add Instrumentation Rule",INSTRUMENTATION_RULE_DETAILS:"Instrumentation Rule Details",DESTINATION:"Destination",DESTINATIONS:"Destinations",ADD_DESTINATION:"Add Destination",ADD_DESTINATIONS:"Add Destinations",ADD_DESTINATION_DESCRIPTION:"Add a destination to send your telemetry data to. You can add multiple destinations.",DESTINATION_DETAILS:"Destination Details",SELECTED_DESTINATIONS:"Selected Destinations",SOURCE:"Source",SOURCES:"Sources",ADD_SOURCE:"Add Source",SOURCE_DETAILS:"Source Details",SELECT_SOURCES:"Select Sources",SELECTED_SOURCES:"Selected Sources",SELECT_SOURCES_DESCRIPTION:"Choose which sources to monitor in your pipeline.",NO_SOURCES:"No sources",NO_SOURCES_GO_BACK:"No sources selected. Please go back to select sources.",PLEASE_ADD_SOURCE:"Please add a source",NO_SOURCES_NAMESPACE:"No sources available in this namespace",TRY_SEARCH_OR_OTHER_NAMESPACE:"Try searching again or select another namespace.",PLEASE_MAKE_SURE_UNIGNORED_NAMESPACES:"Please make sure your cluster has unignored namespaces",INSTALLATION:"Installation",SOURCES_SETUP:"Sources setup",DESTINATIONS_SETUP:"Destinations setup",SUMMARY:"Summary",REVIEW_SETUP:"Review your setup and confirm your choices.",NO_SOURCES_SELECTED:"No sources selected",ADD_SOURCE_PROMPT:"Add at least one source to start collecting data",NO_DESTINATIONS_SELECTED:"No destinations selected",ADD_DESTINATION_PROMPT:"Add destination so your data has somewhere to go",GET_STARTED_WITH:"Get started with",GET_STARTED_DESCRIPTION:"First, select the sources you want Odigos to monitor. Next, choose where your data should be sent by configuring destinations.",TYPE:"Type",NOTES:"Notes",STATUS:"Status",INSTRUMENTATION_STATUS:"Instrumentation Status",INSTRUMENTATION:"Instrumentation",INSTRUMENTATION_DESCRIPTION:"Detected runtime and instrumentation applied to this source.",PROGRESS:"Progress",RUNTIME:"Runtime",LAST_UPDATED:"Last updated",ISSUES:"Issues",WAITING_FOR:"Waiting for",READONLY:"Readonly",LANGUAGE:"Language",VERSION:"Version",RUNTIME_VERSION:"Runtime Version",VERSION_PLACEHOLDER:"1.0.0",MONITORS:"Monitors",SIGNALS_FOR_PROCESSING:"Signals for Processing",MANAGED_BY_PROFILE:"Managed by Profile",TIER:"Tier",ENTERPRISE:"Enterprise",ENTERPRISE_TIER:"Enterprise Tier",COMMUNITY:"Community",COMMUNITY_TIER:"Community Tier",API_TOKEN:"API Token",API_TOKENS:"API Tokens",DESCRIBE_ODIGOS:"Describe Odigos",DESCRIBE_SOURCE:"Describe Source",OVERVIEW:"Overview",LIBRARIES:"Libraries",STANDARD_LIBRARY:"Standard Library",STANDARD:"Standard",PEER_SOURCES:"Peer Sources",PROFILING:"Profiling",INBOUND:"Inbound",OUTBOUND:"Outbound",INBOUND_DESCRIPTION:e=>`Services that send requests to ${e}`,OUTBOUND_DESCRIPTION:e=>`Services that ${e} sends requests to`,NO_INBOUND_CONNECTIONS_DESCRIPTION:"No services are currently sending requests to this source.",NO_OUTBOUND_CONNECTIONS_DESCRIPTION:"This source hasn't sent requests to other services yet.",NO_INBOUND_CONNECTIONS:"No inbound connections",NO_OUTBOUND_CONNECTIONS:"No outbound connections",COULD_NOT_FETCH_PEER_SOURCES:"Could not fetch peer sources",VIRTUAL:"Virtual",VIRTUAL_TOOLTIP:"This service is not instrumented/injected with Odigos, but we can still see it in the service map because it is connected to other services.",NO_RESULTS:"No results",NO_RESULTS_FOR_FILTER:e=>`No results matched the filter '${e}'`,POD:"Pod",PODS:"Pods",PODS_HEALTHY:"Pods are healthy",PODS_NOT_HEALTHY:"Pods are not healthy",NO_RUNNING_PODS:"No running pods",NO_RUNNING_PODS_SUBTITLE:"Check if you have any running pods and try again",AGENT_INJECTED:"Agent injected",AGENT_NOT_INJECTED:"Agent not injected",KUBERNETES_HEALTHY:"Kubernetes healthy",ODIGOS_HEALTHY:"Odigos healthy",HEALTHY:"Healthy",UNHEALTHY:"Unhealthy",NOT_HEALTHY:"Not Healthy",NODE:"Node",AGE:"Age",RUNNING_TIME:"Running Time",RUNNING_TIME_TOOLTIP:"Time elapsed since the container was last started and entered the Running state",NOT_RUNNING:"Not Running",RESTARTS:"Restarts",LATEST_REVISION:"Latest Revision",OLD_REVISION:"Old Revision",READY:"Ready",NOT_READY:"Not Ready",STARTED:"Started",NOT_STARTED:"Not Started",CRASHLOOP:"Crashloop",NO_CRASHLOOP:"No Crashloop",CRASHLOOP_BACKOFF:"Crashloop backoff",CANNOT_POOL_IMAGE:"Cannot pool image",DEVICE_NAME:"Device Name",INSTRUMENTED:"Instrumented",UNINSTRUMENTED:"Uninstrumented",INSTRUMENTED_WITH_DISTRO:e=>`Instrumented | ${e}`,DEBUG_COMMANDS:"Debug Commands",YAML:"YAML",YAML_FILES:"YAML Files",GET_POD_YAML:"Get Pod YAML",GET_POD_LOGS:"Get Pod Logs",DESCRIBE_POD:"Describe Pod",CONTAINER:"Container",CONTAINERS:"Containers",DETECTED_CONTAINERS:"Detected Containers",DETECTED_CONTAINERS_DESCRIPTION:"The system automatically instruments the containers it detects with a supported programming language.",NO_CONTAINERS_DETECTED:"No containers detected",DETECTED_PROCESSES:"Detected Processes",DETECTED_PROCESSES_DESCRIPTION:"The system automatically instruments the processes it detects with a supported programming language.",NO_PROCESSES_DETECTED:"No processes detected",CONTAINER_NAME:"Container Name",PROCESS:"Process",PROCESSES:"Processes",PROCESS_FALLBACK_NAME:"process",PROCESS_PID:"PID",EXECUTABLE:"Executable",COMMAND:"Command",OPEN_IN_POD_TAB:"Open in 'Pod' tab",OPEN_IN_SAMPLING_PAGE:"Open in 'Sampling' page",ALL_CONTAINERS_HEALTHY:e=>`All ${e} containers are healthy`,ALL_PROCESSES_HEALTHY:e=>`All ${e} processes are healthy`,PID:e=>`#${e}`,IDENTIFYING_ATTRIBUTES:"Identifying Attributes",INSTRUMENTATION_LIBRARIES:"Instrumentation Libraries",INSTRUMENTED_LIBRARIES:"Instrumented Libraries",FILTERED_COUNT_TOOLTIP:"Represents filtered amount, out of total amount",SEARCH_NAMESPACES:"Search Namespaces",SEARCH_SOURCES:"Search Sources",SELECT_ALL:"Select all",UNSELECT_ALL:"Unselect all",ONLY_SELECTED:"Only selected",ONLY_RUNNING_INSTANCES:"Only running instances",TO_COLLECT_OTEL_DATA:"To collect OpenTelemetry data",TO_MONITOR_OTEL_DATA:"To monitor OpenTelemetry data",TO_MODIFY_OTEL_DATA:"To modify OpenTelemetry data",NO_DATA_INSTRUMENTATION_RULES:"To configure how telemetry is collected",NO_DATA_SOURCES:"To start collecting telemetry from a Kubernetes workload",NO_DATA_ACTIONS:"To process telemetry before export",NO_DATA_DESTINATIONS:"To send telemetry to an observability backend",QUICK_BACK_TO_SUMMARY:"When you finish editing you can quickly go back to the summary.",GO_TO_SUMMARY:"Go to summary",FUTURE_APPS_TITLE:"Instrument entire namespace",FUTURE_APPS_DESCRIPTION:"When enabled, all applications in the namespace and new applications will be instrumented automatically and included in the current data stream using a Namespace Source.",OVERIDE:"Override",OVERIDDEN:"Overridden",OVERRIDE_RUNTIME_DETAILS:"Override Runtime Details",OVERRIDE_RUNTIME_DETAILS_SUBTITLE:"Use when multiple languages exist in the same container or when Odigos is unable to detect the application language",OVERRIDE_RUNTIME_WARNING:"This is an advanced configuration. If the selected programming language is incorrect, data collection may be incomplete or may not occur at all.",OVERRIDE_OTEL_DISTRO_NAME:"Override OpenTelemetry distro name",OVERRIDE_OTEL_DISTRO_NAME_SUBTITLE:"Use to set a specific Odigos OpenTelemetry distribution",OVERRIDE_OTEL_DISTRO_NAME_WARNING:"This is an advanced configuration. If the selected OpenTelemetry distro name is incorrect, data collection may be incomplete or may not occur at all.",OVERRIDE_OTEL_DISTRO_NAME_SAVE_TOOLTIP:"Use the provided OpenTelemetry distro name to instrument this container",OVERRIDE_OTEL_DISTRO_NAME_DELETE_TOOLTIP:"Remove manual override of OpenTelemetry distro name, and use Odigos automatic detection OpenTelemetry distro name for instrumentation",OVERRIDE_RUNTIME_DETAILS_SAVE_TOOLTIP:"Use the provided runtime details to instrument this container",OVERRIDE_RUNTIME_DETAILS_DELETE_TOOLTIP:"Remove manual override of runtime details, and use Odigos automatic detection runtime details for instrumentation",OTEL_DISTRO_NAME:"OpenTelemetry distro name",WAITING_FOR_RUNTIME_DETECTION:"Waiting for runtime detection...",DETECTING_RUNTIME_INFO:"Detecting runtime info",NO_AVAILABLE_AGENT:"No available agent",ACTIVE:"Active",INACTIVE:"Inactive",ENABLED:"Enabled",DISABLED:"Disabled",NO_TRACES_FOUND:"No traces found",ARE_SERVICES_INSTRUMENTED_AND_PRODUCING_TRAFFIC:"Are your services instrumented & producing traffic?",JAVA_CUSTOM_PROBES:"Java Custom Probes",GOLANG_CUSTOM_PROBES:"Golang Custom Probes",ROLLOUT:"Rollout",ROLLOUT_RESTART:"Rollout Restart",ROLLOUT_RESTART_WORKLOADS_DESCRIPTION:"Are you sure you want to rollout restart these workloads?",ROLLOUT_NOT_REQUIRED:"Rollout Not Required",ROLLOUT_NOT_REQUIRED_MESSAGE:"This source is instrumented with eBPF and does not require a restart.",ROLLOUT_FAILED:"Rollout Failed",ROLLOUT_PREVIOUS_ONGOING:"Previous Rollout Ongoing",ROLLOUT_PREVIOUS_ONGOING_MESSAGE:"A previous rollout is ongoing. Please wait for it to finish before triggering a new one.",ROLLOUT_AUTO_DISABLED:"Auto Rollout Disabled",ROLLOUT_AUTO_DISABLED_MESSAGE:"Trigger a manual rollout to inject the agent.",ROLLOUT_FINISHED:"Rollout Finished",ROLLOUT_FINISHED_MESSAGE:"All pods have been updated and are healthy.",ROLLBACK:"Rollback",ROLLBACK_OCCURRED:"Rollback Occurred",ROLLBACK_OCCURRED_MESSAGE:"Odigos detected a crash and rolled back instrumentation to protect your workload.",ROLLBACK_SUCCESS:"Rollback Success",ROLLBACK_RECOVER:"Recover",FETCHING_NAMESPACES:"Fetching namespaces",FETCHING_NAMESPACES_SUBTITLE:"Please wait while we fetch the namespaces",ADD_SOURCES_DESCRIPTION:"Choose which sources to monitor in your pipeline.",CREATING_SOURCES:"Creating Sources...",CREATING_SOURCES_SUBTITLE:"This may take a few moments while sources are being created.",SELECT_NAMESPACE:"Select namespace from the list",SELECT_NAMESPACE_SUBTITLE:"Add namespace so you can select workloads from it.",CREATING_ACTION:"Creating action",CREATING_ACTION_SUBTITLE:"Please wait while we create the action",ADD_ACTION_DESCRIPTION:"Select an action to modify telemetry data before it's sent to destinations. Choose an action type and configure its details.",CREATING_INSTRUMENTATION_RULE:"Creating instrumentation rule",CREATING_INSTRUMENTATION_RULE_SUBTITLE:"Please wait while we create the instrumentation rule",ADD_INSTRUMENTATION_RULE_DESCRIPTION:"Define how telemetry is recorded from your application. Choose a rule type and configure the details.",CREATING_DESTINATION:"Creating destination",CREATING_DESTINATION_SUBTITLE:"Please wait while we create the destination",ADD_DESTINATION_DRAWER_DESCRIPTION:"Add backend destination you want to connect with Odigos.",THROUGHPUT_LAST_10_SECONDS:"Throughput (last 10 seconds)",DELETE_POD_TO_RESTART:"Delete Pod to Restart",DEBUG:"Debug",SAMPLING:"Sampling",HEAD_SAMPLING:"Head Sampling",TAIL_SAMPLING:"Tail Sampling",NOISY_OPERATIONS:"Noisy Operations",HIGHLY_RELEVANT_OPERATIONS:"Highly Relevant Operations",COST_REDUCTION_OPERATIONS:"Cost Reduction Operations"},Cn={GET_STARTED:"Get started",ADD:"Add",ADD_NEW:"Add New",CREATE_NEW:"Create new",NEW:"New",SELECT:"Select",CREATE:"Create",UPDATE:"Update",EDIT:"Edit",DELETE:"Delete",RESTART:"Restart",RESTART_POD:"Restart pod",REFRESH:"Refresh",CANCEL:"Cancel",CLOSE:"Close",DONE:"Done",SAVE:"Save",BACK:"Back",CONFIRM:"Confirm",NEXT:"Next",VERIFY:"Verify",VERIFY_AND_CREATE_CONNECTOR:"Verify & Create Connector",STAY_ON_CONNECTIONS:"Stay on connections page",GO_TO_CONNECTOR_OVERVIEW:"Go to connector overview",RETRY:"Retry",TEST:"Test",TEST_CONNECTION:"Test Connection",INSTRUMENT:"Instrument",UNINSTRUMENT:"Uninstrument"},xn=(e,t)=>e===wo.Success?$n.HEALTHY:e===wo.Error?$n.NOT_HEALTHY:ln(t),wn=e=>{if(!e)return null;switch(e){case ko.Irrelevant:return null;case ko.Failure:case ko.Error:return wo.Error;case ko.Notice:return wo.Warning;case ko.Pending:case ko.Waiting:return wo.Loading;case ko.Unsupported:case ko.Disabled:return wo.Disabled;case ko.Success:return wo.Success;case ko.Unknown:default:return wo.Info}},Tn=(e,t,o="reason",n)=>{const r=wn(e?.status);return r?{key:`desired-status-${e?.name}`,status:r,leftIcon:t||(r===wo.Success?v:E),label:n||("reason"===o?ln(e?.reasonEnum):xn(r,e?.reasonEnum)),tooltip:e?.message,textSize:dn.XXXS,invertColors:!0,useSecondaryTone:!0}:null},On=e=>e.charAt(0).toUpperCase()+e.slice(1),Nn=e=>{const t=e=>e.filter(e=>"object"==typeof e&&null!==e?""!==e.key&&""!==e.value:""!==e),o=e=>Object.fromEntries(Object.entries(e).filter(([e,t])=>""!==e&&""!==t).map(([e,n])=>Array.isArray(n)?[e,t(n)]:"object"==typeof n&&null!==n?[e,o(n)]:[e,n]));return Object.entries(e).reduce((e,[n,r])=>{try{const i=JSON.parse(r);Array.isArray(i)?e[n]=JSON.stringify(t(i)):e[n]="object"==typeof i&&null!==i?JSON.stringify(o(i)):r}catch(i){"object"==typeof r&&null!==r?Array.isArray(r)?e[n]=JSON.stringify(t(r)):e[n]=JSON.stringify(o(r)):e[n]=r}return e},{})};var In;(e=>{e.SIGNALS="SIGNALS"})(In||(In={}));const An=(e,t,o)=>{if(!e||!e.length)return!0;if(1===e.length)return"true"==e[0];const[n,r,i]=e;if(n===In.SIGNALS)switch(r){case"INCLUDES":return t?.includes(i);case"EXCLUDES":return!t?.includes(i);default:return!0}const a=o.find(e=>e.name===n||e.key===n);if(!a)return!1;const s=null==a.value?"":String(a.value);switch(r){case"===":case"==":return s===i;case"!==":case"!=":return s!==i;case">":return Number(s)>Number(i);case"<":return Number(s)<Number(i);case">=":return Number(s)>=Number(i);case"<=":return Number(s)<=Number(i);default:return!0}},_n=e=>JSON.parse(JSON.stringify(e)),Rn=(e,t)=>t.split(".").reduce((e,t)=>e?.[t],e),Dn=(e,t,o)=>{const n=t.split(".");let r=e;for(let e=0;e<n.length-1;e++)n[e]in r&&"object"==typeof r[n[e]]||(r[n[e]]={}),r=r[n[e]];r[n[n.length-1]]=o},kn=(e,t)=>{let o=[...e];return t.monitors?.length&&(o=o.filter(e=>!!t.monitors?.find(t=>e.signals?.find(e=>e.toLowerCase()===t.id)))),o},Ln=(e,t)=>{let o=[...e];return t.monitors?.length&&(o=o.filter(e=>!!t.monitors?.find(t=>e.exportedSignals[t.id]))),o},Pn=(e,t)=>t?e.filter(e=>e.dataStreamNames.includes(t)||!e.dataStreamNames.length):[],Un=(e,t)=>{let o=e;if(t.namespaces?.length){const e=new Set(t.namespaces.map(({id:e})=>e));o=o.filter(({id:t})=>e.has(t.namespace))}if(t.regions?.length){const e=new Set(t.regions.map(({id:e})=>e));o=o.filter(({id:t})=>!!t.region&&e.has(t.region))}if(t.kinds?.length){const e=new Set(t.kinds.map(({id:e})=>e));o=o.filter(({id:t})=>e.has(t.kind))}if(t.languages?.length){const e=new Set(t.languages.map(({id:e})=>e));o=o.filter(({runtimeInfo:t,containers:o})=>t?.detectedLanguages?.some(t=>e.has(t))||o?.some(t=>{const o=t.overrides?.runtimeInfo?.language??t.runtimeInfo?.language;return!!o&&e.has(o)}))}if(t.podsAgentInjectionStatus?.length){const e=new Set(t.podsAgentInjectionStatus.map(({id:e})=>e));o=o.filter(({podsAgentInjectionStatus:t})=>e.has(t?.reasonEnum??"")||e.has(t?.message??""))}if(t.statuses?.length){const e=new Set(t.statuses.map(({id:e})=>e));o=o.filter(({instrumentationReport:t})=>{const o=t?.state||t?.progressStage;return!!o&&e.has(o)})}return t.onlyErrors&&(o=o.filter(e=>wn(e.workloadOdigosHealthStatus?.status)===wo.Error)),o},Mn=(e,t)=>t?e.filter(e=>e.dataStreamNames?.includes(t)||t===yn&&!e.dataStreamNames?.length):[],Fn=(e,t="",o={})=>{for(const n in e)if(e.hasOwnProperty(n)){const r=e[n],i=t?`${t}.${n}`:n;null===r||"object"!=typeof r||Array.isArray(r)?Array.isArray(r)?r.forEach((e,t)=>{const n=`${i}[${t}]`;null!==e&&"object"==typeof e?Fn(e,n,o):o[n]=e}):o[i]=r:Fn(r,i,o)}return o},zn=e=>{if(!e)return"0 KB/s";const t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(0===t?0:1)} ${["Bytes/s","KB/s","MB/s","GB/s","TB/s"][t]}`},Bn=e=>{if(!e)return"0 ns";if(e<1e3)return`${e.toFixed(0)} ns`;if(e<1e6){const t=e/1e3;return`${t.toFixed(t<10?2:0)} μs`}if(e<1e9){const t=e/1e6;return`${t.toFixed(t<10?2:0)} ms`}if(e<6e10){const t=e/1e9;return`${t.toFixed(t<10?2:0)} s`}if(e<36e11){const t=e/6e10;return`${t.toFixed(t<10?2:0)} m`}if(e<864e11){const t=e/36e11;return`${t.toFixed(t<10?2:0)} h`}{const t=e/864e11;return`${t.toFixed(t<10?2:0)} d`}},Hn=()=>{const e=crypto.getRandomValues(new Uint8Array(16));let t=0;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,o=>{const n=e[t%16];return t++,("1"===o?n:"0"===o?63&n|128:15&n|64).toString(16)})},Wn=e=>{if(!e)return jn([]);if(Array.isArray(e))return jn(e);const t=Object.values(e).reduce((e,t)=>{if(null!=t){const o=wn(t.status);o&&e.push({status:o,type:t.name??"",reason:t.reasonEnum??null,message:t.message??null})}return e},[]);return jn(t)},jn=e=>{const t=e?.filter(({status:e})=>e===wo.Error),o=e?.filter(({status:e})=>e===wo.Warning),n=e?.filter(({status:e})=>e===wo.Disabled),r=e?.filter(({status:e})=>e===wo.Loading),i=t.length>0,a=o.length>0,s=n.length>0;return{errors:t,hasErrors:i,warnings:o,hasWarnings:a,disableds:n,hasDisableds:s,loadings:r,hasLoadings:r.length>0,priorotizedStatus:i?wo.Error:a?wo.Warning:s?wo.Info:void 0}},Gn=e=>{const t=e?.reduce((e,t)=>t.agentEnabled?.agentEnabled?e+1:e,0);return`${t}/${e?.length||0} instrumented`},Xn=e=>({[vo.Java]:U,[vo.Go]:P,[vo.JavaScript]:L,[vo.Python]:k,[vo.DotNet]:D,[vo.CSharp]:R,[vo.CPlusPlus]:_,[vo.Php]:A,[vo.Ruby]:I,[vo.Rust]:N,[vo.Swift]:O,[vo.Elixir]:T,[vo.MySql]:w,[vo.Nginx]:x,[vo.Postgres]:C,[vo.Redis]:$,[vo.Kafka]:S,[vo.Ignored]:g,[vo.Unknown]:g,[vo.Processing]:g,[vo.NoContainers]:g,[vo.NoRunningPods]:g}[e]||g),Vn=e=>e?e.overrides?.runtimeInfo?.language??e.runtimeInfo?.language??vo.Unknown:vo.Unknown,Kn=e=>e?e.overrides?.runtimeInfo?.runtimeVersion??e.runtimeInfo?.runtimeVersion??null:null,Yn=e=>e?.map(e=>Xn(Vn(e)))||[],Jn=e=>e?.map(e=>Xn(e))||[],qn=e=>e.runtimeInfo?.detectedLanguages?.length?Jn(e.runtimeInfo?.detectedLanguages):Yn(e.containers),Qn=(e,t)=>{const o={[_o.Alauda]:He,[_o.AlibabaCloud]:Be,[_o.AppDynamics]:ze,[_o.Axiom]:Fe,[_o.AzureBlob]:Me,[_o.AzureMonitor]:Ue,[_o.BetterStack]:Pe,[_o.Bonree]:Le,[_o.Causely]:ke,[_o.Checkly]:De,[_o.Chronosphere]:Re,[_o.ClickHouse]:_e,[_o.CloudWatch]:Ae,[_o.Coralogix]:Ie,[_o.Dash0]:Ne,[_o.Datadog]:Oe,[_o.Dynamic]:te,[_o.Dynatrace]:Te,[_o.ElasticApm]:we,[_o.ElasticSearch]:xe,[_o.GoogleCloud]:Ce,[_o.GoogleCloudOTLP]:Ce,[_o.GrafanaCloudLoki]:$e,[_o.GrafanaCloudPrometheus]:$e,[_o.GrafanaCloudTempo]:$e,[_o.Greptime]:Se,[_o.Groundcover]:Ee,[_o.Honeycomb]:ve,[_o.HyperDX]:be,[_o.Instana]:ye,[_o.Jaeger]:fe,[_o.Kafka]:S,[_o.Kloudmate]:me,[_o.Last9]:ge,[_o.Lightstep]:he,[_o.LogzIo]:pe,[_o.Loki]:ue,[_o.Lumigo]:de,[_o.Middleware]:ce,[_o.NewRelic]:le,[_o.Observe]:se,[_o.Odigos]:ae,[_o.OneUptime]:ie,[_o.OpenObserve]:re,[_o.Opsverse]:ne,[_o.Oracle]:oe,[_o.OTLP]:te,[_o.OTLPHttp]:te,[_o.Prometheus]:ee,[_o.Qryn]:Z,[_o.QrynOss]:Q,[_o.Quickwit]:q,[_o.S3]:J,[_o.Seq]:Y,[_o.Signalfx]:V,[_o.Signoz]:K,[_o.Splunk]:V,[_o.SplunkSapm]:V,[_o.SplunkOtlp]:V,[_o.SumoLogic]:X,[_o.TelemetryHub]:G,[_o.Tempo]:j,[_o.Tingyun]:W,[_o.Traceloop]:H,[_o.Uptrace]:B,[_o.VictoriaMetrics]:z,[_o.VictoriaMetricsCloud]:z,[_o.XRay]:F,[_o.Pyroscope]:M}[e];return o&&!t?{icon:o}:{iconSrc:`https://d15jtxgb40qetw.cloudfront.net/${e}.svg`}},Zn=e=>({[So.Namespace]:Ve,[So.Source]:Xe,[So.Destination]:Ge,[So.Action]:l,[So.InstrumentationRule]:je,[So.SamplingRule]:We}[e]),er=e=>"ruleId"in e&&e.ruleId?e.ruleId:"id"in e&&"string"==typeof e.id&&e.id||"id"in e&&"object"==typeof e.id&&e.id.namespace&&e.id.kind&&e.id.name?e.id:"namespace"in e&&e.namespace&&"kind"in e&&e.kind&&"name"in e&&e.name?{namespace:e.namespace,name:e.name,kind:e.kind,..."region"in e&&e.region?{region:e.region}:{}}:"name"in e&&e.name?e.name:void 0,tr=e=>{if(!e)return"";if("string"==typeof e)return e;const t=`${e.namespace}/${e.kind}/${e.name}`;return e.region?`${t}/${e.region}`:t},or=e=>tr(er(e)),nr=(e,t,o)=>{const{extended:n,prioritizeDisplayName:r}=o||{};let i="",a="";switch(t){case So.InstrumentationRule:const t=e;i=t.type,a=t.ruleName;break;case So.Source:const o=e;i=o.id.name,a=o.serviceName||"";break;case So.Action:const n=e;i=n.type,a=n.name||"";break;case So.Destination:const r=e;i=r.destinationType.displayName,a=r.name;break;case So.Namespace:const s=e;i=s.name,a=s.name}return n?i+(a&&a!==i?` (${a})`:""):r&&a||i},rr=(e,t)=>{if(t===So.Source){const t={namespace:"",name:"",kind:""};return e.split("&").forEach(e=>{const[o,n]=e.split("=");t[o]=n}),t}return e},ir=e=>e.overrides?.runtimeInfo?.language??e.runtimeInfo?.language??vo.Unknown,ar=e=>{const{numberOfInstances:t,containers:o}=e;if(!o)return t&&t>0?vo.Processing:vo.NoRunningPods;const n=o?.filter(e=>ir(e)!==vo.Ignored);if(!n.length)return vo.NoContainers;const r=n.find(e=>ir(e)!==vo.Unknown);return r?ir(r):vo.Unknown},sr=(e,t,o)=>(t===So.Source?e?.sources.find(e=>e.kind===o.kind&&e.name===o.name&&e.namespace===o.namespace):e?.destinations.find(e=>e.id===o))||{throughput:0},lr=e=>({[jo.Logs]:Je,[jo.Metrics]:Ye,[jo.Traces]:Ke,[jo.Profiles]:ae}[e]),cr=(e,t)=>Object.values(dn).reduce((o,n)=>Math.abs(t[n]-e)<Math.abs(t[o]-e)?n:o),dr=e=>e?{[fo.K8s]:h,[fo.Vm]:Qe,[fo.Connector]:qe}[e]:ae,ur=e=>e?{[fo.K8s]:"Kubernetes Cluster",[fo.Vm]:"Virtual Machine",[fo.Connector]:"Cloud Connector"}[e]:"Unknown",pr=(e,t,o)=>{const n=e[t];return n?n.flatMap(e=>{const n=e[o],r=[];return void 0!==n&&(Array.isArray(n)?r.push(...n):r.push(n)),r.push(...pr(e,t,o)),r}):[]},hr={"aws.lambda":"AWS Lambda","aws.fargate-task":"ECS Fargate Task","aws.fargate-cluster":"ECS Fargate Cluster","aws.ecs-cluster":"ECS Cluster","aws.eks":"Amazon EKS","aws.ec2":"Amazon EC2"},gr=e=>{if(!e)return"";if(hr[e])return hr[e];if(e.includes(".")){return e.slice(e.indexOf(".")+1).split(/[-_]/).map(e=>e?e[0].toUpperCase()+e.slice(1):e).join(" ")}return e},mr=(e,t)=>{if(t===So.Source){let t="";return Object.entries(e).forEach(([e,o])=>{t+=`${e}=${o}&`}),t.slice(0,-1),t}return e},fr=(e,t,o)=>{switch(o=o??"500",t){case wo.Default:return e.v2.colors.purple[o];case wo.Info:return e.v2.colors.blue[o];case wo.Error:return e.v2.colors.red[o];case wo.Warning:return e.v2.colors.yellow[o];case wo.Success:return e.v2.colors.green[o];case wo.Loading:case wo.Disabled:case wo.Unknown:return e.v2.colors.silver[o];default:return e.v2.colors.white[500]}},yr=e=>{switch(e){case zo.Updating:case Bo.Pending:case Ho.ContainerCreating:case Wo.Waiting:return wo.Info;case zo.Healthy:case Bo.Succeeded:case Bo.Running:case Ho.Running:case Wo.Running:return wo.Success;case zo.Degraded:return wo.Warning;case zo.Failed:case Bo.Failed:case Ho.Error:case Ho.CrashLoopBackOff:case Ho.CreateContainerError:case Ho.CreateContainerConfigError:case Ho.ErrImagePull:case Ho.ErrImageNeverPull:case Ho.ImagePullBackOff:case Ho.InvalidImageName:case Ho.RegistryUnavailable:case Ho.NetworkNotReady:case Ho.OOMKilled:case Ho.ContainerCannotRun:case Wo.Terminated:case Ho.DeadlineExceeded:case Ho.StartError:return wo.Error;case zo.Down:case Ho.Completed:return wo.Disabled;case zo.Unknown:case Bo.Unknown:default:return wo.Unknown}},br=n.div`
|
|
42
42
|
border-radius: 100%;
|
|
43
43
|
background-color: ${({theme:e})=>e.v2.colors.silver[700]};
|
|
44
44
|
position: relative;
|
|
@@ -192,7 +192,7 @@ import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import n,{css as
|
|
|
192
192
|
background-clip: text;
|
|
193
193
|
color: transparent;
|
|
194
194
|
animation: ${Kr} 1s reverse linear infinite;
|
|
195
|
-
`,Jr=e=>{const t=Math.max(0,Date.now()-e),o=Math.floor(t/1e3),n=Math.floor(o/60),r=o%60;return`${String(n).padStart(2,"0")}:${String(r).padStart(2,"0")}`},qr=({icon:o,title:n,titleColor:r,titleSize:a=dn.S,subTitle:s,subTitleColor:l,subTitleSize:c=dn.XXXS,startedAt:d,withGradient:u,gradientColor:p,withSpinner:h,withSpinnerOld:g,scaleSpinnerOld:m=1,percentage:f,withVisual:y,visualIcon:b=Ze})=>{const v=i(),[E,S]=Ft(()=>d?Jr(d):"");zt(()=>{if(!d)return;S(Jr(d));const e=setInterval(()=>S(Jr(d)),1e3);return()=>clearInterval(e)},[d]);const $=r||v.v2.colors.white[500],C=l||v.v2.colors.silver[200],x=p||v.v2.colors.black[500];return t(zr,{$gap:16,$alignItems:"center",children:[y?e(Nr,{scale:1.7,icon:b}):h?e(Sr,{percentage:f}):g?e(Tr,{scale:m}):null,(n||s||d||o||u)&&t(zr,{$gap:8,$alignItems:"center",children:[t(Fr,{$gap:4,children:[o&&e(o,{}),u?e(Yr,{align:"center",size:a,$titleColor:$,$gradientColor:x,nowrap:!0,children:n||"Loading..."}):n?e(mn,{align:"center",size:a,color:$,children:n}):null]}),s?e(mn,{align:"center",size:c,color:C,children:s}):null,E?e(mn,{align:"center",size:c,color:$,children:E}):null]})]})},Qr=(e,t)=>({[wo.Default]:o=>ae({fill:fr(t,e,"300"),...o}),[wo.Info]:o=>nt({fill:fr(t,e,"400"),...o}),[wo.Error]:o=>ot({fill:fr(t,e,"500"),...o}),[wo.Warning]:o=>tt({fill:fr(t,e,"500"),...o}),[wo.Success]:o=>v({fill:fr(t,e,"500"),...o}),[wo.Loading]:e=>qr({withSpinnerOld:!0,...e}),[wo.Disabled]:o=>E({fill:fr(t,e,"400"),...o}),[wo.Unknown]:o=>et({fill:fr(t,e,"300"),...o})}[e]),Zr=e=>{switch(e){case ko.Success:return wo.Success;case ko.Error:case ko.Failure:return wo.Error;case ko.Notice:return wo.Warning;case ko.Unsupported:case ko.Unknown:return wo.Info;case ko.Irrelevant:case ko.Disabled:return wo.Disabled;case ko.Waiting:return wo.Loading;case ko.Pending:default:return wo.Default}},ei=(e,t)=>{const o=t.find(([t,o])=>e>=t&&(null===o||e<=o));return o?.[2]||null},ti={redis:$,mysql:w,postgresql:C,postgres:C,kafka:S,elasticsearch:xe,clickhouse:_e,oracle:oe,aws:rt},oi={sts:ft,dynamodb:mt,s3:J,sqs:gt,sns:ht,lambda:pt,kinesis:ut,ec2:dt,apigateway:ct,apigatewayv2:ct,bedrock:lt,bedrockruntime:lt,eventbridge:st,sfn:at,stepfunctions:at,secretsmanager:it,cloudwatch:Ae},ni=e=>{const t=e.attributes,o=t["db.system"];if(o){const e=ti[o.toLowerCase()];if(e)return e}const n=t["messaging.system"];if(n){const e=ti[n.toLowerCase()];if(e)return e}const r=t["rpc.system"];if(r?.toLowerCase().includes("aws")){const e=t["rpc.service"]?.toLowerCase();if(e){const t=oi[e];if(t)return t}return rt}const i=e.serviceName.toLowerCase();for(const[e,t]of Object.entries(ti))if(i.includes(e))return t;return Ge},ri=e=>{if(!e)return{namespace:"",name:"",kind:""};if("id"in e&&"object"==typeof e.id)return{namespace:e.id.namespace,name:e.id.name,kind:e.id.kind,region:e.id.region||void 0};const{namespace:t,name:o,kind:n,region:r}=e;return{namespace:t,name:o,kind:n,region:r||void 0}};function ii(e,t){if(!e)return t;if("object"==typeof e)return e;try{return JSON.parse(e)}catch(e){return t}}const ai=(e,t)=>{const o=[],n=JSON.parse(JSON.stringify(e));for(const e of n){const n=ii(t.fields,{}),r=e.items.findIndex(e=>e.type===t.destinationType.type);-1!==r&&o.push(...e.items[r].fields.map(e=>({...e,initialValue:n[e.name]})))}return o},si=(e,t)=>{const o=e=>e?.some(({healthy:e})=>e.status!==wo.Success);return e?.length?e.some(({instrumentationInstances:e})=>o(e)):o(t)??!1};function li(e){if(!e||0===e.length)return null;const t=[],o=[],n=[];for(const r of e){if(!r)continue;const e=r.workloadName??"",i=r.workloadKind??"",a=r.workloadNamespace??"",s=r.workloadLanguage??"";e||i?t.push({namespace:a,kind:i,name:e}):a&&o.push(a),s&&n.push(s)}return 0===t.length&&0===o.length&&0===n.length?null:{sources:t,namespaces:o,languages:n}}function ci(e){if(!e)return null;const t=[];for(const o of e.sources??[])t.push({workloadName:o.name||null,workloadKind:o.kind||null,workloadNamespace:o.namespace||null});for(const o of e.namespaces??[])t.push({workloadNamespace:o});for(const o of e.languages??[])t.push({workloadLanguage:o});return t.length?t:null}function di(e){const{sourcesScopes:t,...o}=e;return{...o,sourceScopes:li(t??null)}}function ui(e){const{sourceScopes:t,...o}=e;return{...o,sourcesScopes:ci(t??null)}}const pi=e=>Array.isArray(e)?!e?.length:"object"==typeof e?!Object.keys(e||{}).length:[void 0,null,""].includes(e),hi=e=>!!e&&(!(e.length>63)&&/^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$/.test(e)),gi=(e,t=0)=>{const o=(new Date).getTime();return new Date(e).getTime()-o<=t},mi=e=>{const t=String(e).trim().toLowerCase();return["true","false","1","0"].includes(t)},fi=(e,t=0)=>(new Date).getTime()-new Date(e).getTime()>=t,yi=/^(\d+\.)?(\d+\.)?(\*|\d+)$/,bi=e=>yi.test(e),vi=e=>e?.map(({status:e,type:t,reason:o,message:n})=>({status:e?.toLowerCase(),type:ln(t),reason:o?ln(o):"",message:n}))||[],Ei=(e,t)=>{const o=ii(e.fields,{});return t.length?t.map(e=>({key:e.name,name:e.displayName||e.name,value:o[e.name]??null})).filter(e=>null!==e.value):Object.entries(o).map(([e,t])=>({key:e,name:e,value:t}))},Si=e=>e?Object.keys(e).filter(t=>e[t]).map(e=>Yo[e]):[],$i=e=>e?Object.keys(e).filter(t=>e[t].supported).map(e=>Yo[e]):[],Ci=e=>{let t=e.replace(/[^\d.]/g,"");const o=t.indexOf(".");return-1!==o&&(t=t.slice(0,o+1)+t.slice(o+1).replace(/\./g,"")),t},xi=e=>e.replace(/[^\d]/g,""),wi=e=>{const t=String(e).trim().toLowerCase();return"true"===t||"1"===t},Ti=e=>{let t="";try{const o=JSON.parse(e);t=Array.isArray(o)?o.map(e=>"object"==typeof e&&null!==e?`${e.key}: ${e.value}`:e).join(", "):"object"==typeof o&&null!==o?Object.entries(o).map(([e,t])=>`${e}: ${t}`).join(", "):e}catch(o){t=e}return t},Oi=e=>{const t=e.fields.reduce((e,{key:t,value:o})=>{const n=(e=>{if(null!=e){if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return String(e);try{return JSON.stringify(e)}catch{return}}})(o);return void 0!==n&&e.push({key:t,value:n}),e},[]);return{...e,fields:t}},Ni=e=>{if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};return Object.keys(e).forEach(o=>{const n=e[o];if(Array.isArray(n)){const e=n.filter(e=>null!=e&&""!==e);e.length>0&&(t[o]=e.map(e=>Ni(e)))}else if("object"==typeof n&&null!==n){const e=Ni(n);Object.keys(e).length>0&&(t[o]=e)}else[void 0,null,""].includes(n)||(t[o]=n)}),t},Ii=(e,t=2)=>JSON.stringify(e||{},null,t),Ai=async(e=1e3)=>new Promise(t=>setTimeout(t,e)),_i=e=>Object.entries(e).reduce((e,[t,o])=>(e[t]="string"==typeof o?o:JSON.stringify(o),e),{}),Ri={PID:"process.pid",VPID:"process.vpid"},Di={[vo.Go]:"Go",[vo.Java]:"Java",[vo.JavaScript]:"Node.js",[vo.Python]:"Python",[vo.DotNet]:".NET",[vo.CSharp]:"C#",[vo.CPlusPlus]:"C++",[vo.Php]:"PHP",[vo.Ruby]:"Ruby",[vo.Rust]:"Rust",[vo.Swift]:"Swift",[vo.Elixir]:"Elixir",[vo.MySql]:"MySQL",[vo.Nginx]:"Nginx",[vo.Postgres]:"PostgreSQL",[vo.Redis]:"Redis",[vo.Kafka]:"Kafka",[vo.Ignored]:"Ignored",[vo.Unknown]:"Unknown",[vo.Processing]:"Processing",[vo.NoContainers]:"No Containers",[vo.NoRunningPods]:"No Running Pods"},ki=[{id:vo.Go,label:Di[vo.Go],icon:Xn(vo.Go)},{id:vo.Java,label:Di[vo.Java],icon:Xn(vo.Java)},{id:vo.JavaScript,label:Di[vo.JavaScript],icon:Xn(vo.JavaScript)},{id:vo.Python,label:Di[vo.Python],icon:Xn(vo.Python)},{id:vo.Php,label:Di[vo.Php],icon:Xn(vo.Php)},{id:vo.Ruby,label:Di[vo.Ruby],icon:Xn(vo.Ruby)},{id:vo.Rust,label:Di[vo.Rust],icon:Xn(vo.Rust)},{id:vo.DotNet,label:Di[vo.DotNet],icon:Xn(vo.DotNet)},{id:vo.CSharp,label:Di[vo.CSharp],icon:Xn(vo.CSharp)},{id:vo.CPlusPlus,label:Di[vo.CPlusPlus],icon:Xn(vo.CPlusPlus)},{id:vo.Swift,label:Di[vo.Swift],icon:Xn(vo.Swift)},{id:vo.Elixir,label:Di[vo.Elixir],icon:Xn(vo.Elixir)}],Li={id:Do.OpentelemetryEbpfInstrumentation,label:Do.OpentelemetryEbpfInstrumentation,icon:yt},Pi={[vo.Go]:{community:[{id:Do.GolangCommunity,label:Do.GolangCommunity,icon:Xn(vo.Go)},Li],enterprise:[{id:Do.GolangEnterprise,label:Do.GolangEnterprise,icon:Xn(vo.Go)}]},[vo.JavaScript]:{community:[{id:Do.NodejsCommunity,label:Do.NodejsCommunity,icon:Xn(vo.JavaScript)},Li],enterprise:[{id:Do.NodejsEnterprise,label:Do.NodejsEnterprise,icon:Xn(vo.JavaScript)}]},[vo.Python]:{community:[{id:Do.PythonCommunity,label:Do.PythonCommunity,icon:Xn(vo.Python)},Li],enterprise:[{id:Do.PythonEnterprise,label:Do.PythonEnterprise,icon:Xn(vo.Python)}]},[vo.Java]:{community:[{id:Do.JavaCommunity,label:Do.JavaCommunity,icon:Xn(vo.Java)},Li],enterprise:[{id:Do.JavaEnterprise,label:Do.JavaEnterprise,icon:Xn(vo.Java)},{id:Do.JavaEbpfInstrumentations,label:Do.JavaEbpfInstrumentations,icon:Xn(vo.Java)}]},[vo.DotNet]:{community:[{id:Do.DotNetCommunity,label:Do.DotNetCommunity,icon:Xn(vo.DotNet)},Li],enterprise:[{id:Do.DotNetEnterprise,label:Do.DotNetEnterprise,icon:Xn(vo.DotNet)}]},[vo.Ruby]:{community:[{id:Do.RubyCommunity,label:Do.RubyCommunity,icon:Xn(vo.Ruby)},Li],enterprise:[{id:Do.RubyEnterprise,label:Do.RubyEnterprise,icon:Xn(vo.Ruby)}]},[vo.Php]:{community:[{id:Do.PhpCommunity,label:Do.PhpCommunity,icon:Xn(vo.Php)},Li],enterprise:[]},[vo.CSharp]:{community:[],enterprise:[{id:Do.CPlusPlusEnterprise,label:Do.CPlusPlusEnterprise,icon:Xn(vo.CSharp)}]},[vo.MySql]:{community:[],enterprise:[{id:Do.MySqlEnterprise,label:Do.MySqlEnterprise,icon:Xn(vo.MySql)}]},[vo.CPlusPlus]:{community:[Li],enterprise:[]},[vo.Rust]:{community:[Li],enterprise:[]},[vo.Swift]:{community:[Li],enterprise:[]},[vo.Elixir]:{community:[Li],enterprise:[]},[vo.Nginx]:{community:[Li],enterprise:[]},[vo.Postgres]:{community:[Li],enterprise:[]},[vo.Redis]:{community:[Li],enterprise:[]},[vo.Kafka]:{community:[Li],enterprise:[]},[vo.Ignored]:{community:[],enterprise:[]},[vo.Unknown]:{community:[Li],enterprise:[]},[vo.Processing]:{community:[],enterprise:[]},[vo.NoContainers]:{community:[],enterprise:[]},[vo.NoRunningPods]:{community:[],enterprise:[]}},Ui="*",Mi=e=>!!e?.includes(Ui),Fi=e=>e?.length?Mi(e)?[Ui]:e:[],zi=e=>{if(e?.length&&!Mi(e))return e.filter(e=>e!==Ui)},Bi=e=>e===Ui?"All languages":Di[e]??e,Hi=e=>e===Ui?bt:Xn(e),Wi=[{type:Lo.CodeAttributes,icon:sn(Lo.CodeAttributes),label:"Code Attributes",description:'The "Code Attributes" rule can be used to add code attributes containing payload data to traces.',docsUrl:"https://docs.odigos.io/pipeline/rules/codeattributes",supportedLanguages:[vo.Go,vo.Python,vo.JavaScript]},{type:Lo.CustomInstrumentation,icon:sn(Lo.CustomInstrumentation),label:"Custom Instrumentation",description:'The "Custom Instrumentation" rule can be used to instrument a specific symbol (i.e. for Golang), or a class and method combination (i.e. for Java) for detailed tracing.',docsUrl:"https://docs.odigos.io/pipeline/rules/custominstrumentation",supportedLanguages:[vo.Go,vo.Java]},{type:Lo.HeadersCollection,icon:sn(Lo.HeadersCollection),label:"Headers Collection",description:'The "Headers Collection" rule can be used to add span attributes containing HTTP Headers data to traces.',docsUrl:"https://docs.odigos.io/pipeline/rules/headerscollection",supportedLanguages:[vo.Go,vo.Java,vo.JavaScript]},{type:Lo.PayloadCollection,icon:sn(Lo.PayloadCollection),label:"Payload Collection",description:'The "Payload Collection" rule can be used to add span attributes containing payload data to traces.',docsUrl:"https://docs.odigos.io/pipeline/rules/payloadcollection",supportedLanguages:[vo.Go,vo.JavaScript]}],ji=e=>{const t=e?.instrumentationRuleTypes;return t?.length?t.map(e=>({type:e.type,icon:sn(e.type),label:e.displayName,description:e.description,docsUrl:e.docsUrl,supportedLanguages:e.supportedLanguages??[],fields:e.fields})):[]},Gi={TITLE:"Regex Testing",REGEX_LABEL:"Regex",REGEX_EMPTY_HINT:"No regex to test - fill in the regex field on the row first.",TEST_STRING_LABEL:"Test string",TEST_STRING_PLACEHOLDER:"Paste a span attribute payload to test the regex against...",TEST_STRING_HELP:'The regex runs verbatim against this string. Paste the actual attribute value the processor will see - if your sample came from a log dump with JSON-escaped quotes (\\"), click Unescape first.',RESULT_LABEL:"Result",RESULT_CAPTURE_HINT:"This is the value that will be written to the new span attribute.",RESULT_EMPTY_REGEX:"Enter a regex to test.",RESULT_EMPTY_INPUT:"Enter a test string to see the result.",RESULT_NO_MATCH:"No match found.",RESULT_INVALID_REGEX_FALLBACK:"Invalid regex pattern.",UNESCAPE_LABEL:"Unescape",UNESCAPE_TOOLTIP:'Convert escape sequences (\\", \\n, \\t, \\\\) into their literal characters. Useful when pasting log output that JSON-escapes attribute values.'},Xi={SEGMENT_PRESET_LABEL:"Preset extract",SEGMENT_PRESET_TOOLTIP:"Extract a value from an existing attribute using a pre-set pattern (JSON, SQL, or Resource path).",SEGMENT_REGEX_LABEL:"Custom Regex",SEGMENT_REGEX_TOOLTIP:"Extract a value using your own regular expression with a single capture group.",PRESET_ROW_TITLE:e=>`Data format ${e+1}`,REGEX_ROW_TITLE:e=>`Custom Regex ${e+1}`,TEST_REGEX_LABEL:"Test Regex",REGEX_LABEL:"Regex",REGEX_PLACEHOLDER:"e.g. (?:^|[\\s,{(\"'])[\"']?study_id[\"']?\\s*[:=]\\s*[\"']?([^\"'\\s,;)}]+)",REGEX_HELP:"A regex with a single capture group; the captured value becomes the new attribute.",TARGET_LABEL:"New span attribute name",TARGET_PLACEHOLDER:"e.g. customerId",TARGET_HELP:"The name of the new extracted attribute."},Vi={[uo.JSON]:{label:"JSON",keyLabel:"JSON key",placeholder:"e.g. customer_id",helpMessage:"Type the JSON key containing the value to extract."},[uo.SQL]:{label:"SQL",keyLabel:"SQL key",placeholder:"e.g. invoice_id",helpMessage:"Type the SQL key containing the value to extract."},[uo.ResourcePath]:{label:"Resource path",keyLabel:"Resource path key",placeholder:"e.g. tenants",helpMessage:"Type the resource name containing the value to extract."}},Ki="Cancel",Yi="Save",Ji="Edit rule",qi="Edit auto rule",Qi="Create rule",Zi="Delete rule",ea="Save",ta="Create your first rule",oa="No Rules Exist",na="No Results",ra=e=>`No rules match the search term "${e}"`,ia="Rule name",aa="Rule type",sa="Select the type of condition that makes a trace highly relevant.",la="Rule Enabled",ca="Rule Disabled",da="Enabled",ua="Disabled",pa="Note",ha="HTTP route",ga="Method",ma="Keep Percentage",fa="Keep traces with duration larger than",ya="Keep traces with errors",ba="Keep at least this percentage of matching traces. A higher rate from another matching rule may apply instead.",va="Keep at most this percentage of matching traces. A lower rate from another matching rule may apply instead.",Ea="Custom percentage",Sa="Disabled rule",$a="Sample",Ca="Keep all",xa="Drop all",wa="Operation type",Ta="HTTP route prefix",Oa="Templated path",Na="Templated path prefix",Ia="Kafka topic",Aa="Custom duration (ms)",_a="No preview available",Ra="Server address",Da="Drop at most this percentage of matching traces",ka="Unnamed rule",La="Sampling Preview",Pa="Source Scope",Ua="Unknown source",Ma="Operation",Fa="Duration",za="Errors",Ba="Keep Percentage",Ha="Define which sources this rule applies to. You can target specific services, namespaces, or apply the rule to the entire cluster.",Wa="Define which operations this rule applies to. You can target specific endpoints or requests, or apply the rule to all operations in the selected services.",ja="Define a duration threshold for this rule. Traces with a duration longer than the specified value will be considered important and retained.",Ga="Retain traces with errors from the selected services and operations.",Xa="Use Keep All to retain every matching trace, or Sample when keeping everything is too expensive. 100% means keep all",Va="Use Drop All to discard every matching trace, or Sample to keep some examples. 0% means drop all.",Ka={highlyRelevant:Xa,noisy:Va,costReduction:void 0},Ya="Type rule name",Ja="Add note here...",qa="Type here",Qa="Search source name",Za="e.g. collector.my.vendor.com",es="Optional notes (not used by the system). Add any context or details for this sampling rule.",ts="Rule will apply to all sources in the cluster",os="If multiple source scopes are set, they must all match simultaneously.",ns="All sources",rs="-",is="All",as="Sources",ss="Namespaces",ls="Languages",cs="any of",ds="AND",us="All operations",ps="HTTP server endpoint",hs="HTTP client endpoint",gs="Kafka consumer",ms="Kafka producer",fs="Sampling Rules",ys='Control how traces are categorized based on "Importance" and potential value, for fine grain control of what is kept and what is dropped.',bs="Refresh",vs="Create rule",Es="Sampling docs",Ss="75vw",$s="Delete rule?",Cs="Are you sure you want to delete this sampling rule?",xs="Delete",ws="Cancel",Ts="Kubernetes Health Probes",Os="Keep All Error Traces",Ns="Drop Traces Cluster-Wide",Is="A rule with the same matching conditions already exists.",As="Create this rule as-is?",_s="This rule still uses the default configuration.\nDo you want to create it anyway?",Rs="Rule preview",Ds="Continue editing",ks="Create 'Noisy Operation Kubernetes Health Probes' rule",Ls="Edit 'Noisy Operation Kubernetes Health Probes' rule",Ps="Automatically detect and sample health probe traces across the cluster.",Us="Create 'Highly Relevant Operations' rule",Ms="Edit 'Highly Relevant Operations' rule",Fs="Automatically keep all error traces across the entire cluster.",zs="Create 'Cost Reduction' rule",Bs="Edit 'Cost Reduction' rule",Hs="Automatically drop a percentage of traces across the entire cluster.",Ws="Skip setup",js="Start setup",Gs="Next",Xs="Go to Sampling",Vs="Read more",Ks="Welcome to Sampling",Ys="Cut costs without losing what matters",Js="Odigos sampling works in three stages:",qs="Filter noisy traffic",Qs="Remove non-actionable traces like health checks.",Zs="Guarantee highly relevance operations",el="Keep traces with errors, high latency, or mission-critical endpoints/services.",tl="Reduce cost",ol="Sample routine traffic using percentages.",nl="Sampling does not drop individual spans - it keeps or drops the entire trace.",rl="Filter noisy operations",il="Cut traces with little or no observability value (health-checks, metric scarping, etc)",al="Odigos filters these efficiently, dropping them early with almost no resource cost.\n\nSampling happens at request start, so only root span attributes available at that moment can be used. Later insights about the trace (errors, latency) - aren’t available.",sl="Preset Rules",ll="Kubernetes Health Probes",cl="Automatically ignore health checks",dl="You can review, adjust, and add additional custom rules later.",ul="Choose your sampling strategy",pl="Pick the approach that best fits your balance of cost vs data-completeness",hl="Keep List",gl="Budget Friendly",ml="Define which traces must be kept, while all others are sampled by default to minimize cost.",fl="Cost-oriented - keeps only what you explicitly select.",yl="Best for very large clusters with high volumes of traces and high costs.",bl="Higher risk of missing important traces without ongoing review.",vl="Drop List",El="Safe Choice",Sl="Define which traces must be aggressively dropped, while all others are kept by default.",$l="Preserves most data unless explicitly filtered.",Cl="Safer by default - gaps in rules or system changes increase cost rather than risk losing important traces.",xl="Advanced",wl="Maximum Flexibility",Tl="Full control over all sampling rules and categories.\n\nBest for advanced users who want complete flexibility.",Ol="'Keep List' profile",Nl="Protect important traces",Il="Start by setting the default sampling rate for all traces.\nThen define rules to exclude highly relevant traces so they are guaranteed to be kept\n\nCommon use-cases include:",Al="Traces with errors",_l="Slow requests (duration above threshold)",Rl="Mission-Critical endpoints or services",Dl="Services under test or evaluation",kl="New deployments",Ll="You can review, adjust, and add rules once onboarding is complete.",Pl="Common Rules",Ul="Preset Rules",Ml="Error collection - entire cluster",Fl="Keep all traces with errors",zl="Ambient sampling percentage",Bl="'Drop List' profile",Hl="Reduce high-volume traffic",Wl="Start by keeping all traces by default. Then define rules to drop high-volume or low-value traces to reduce overall volume and cost.\n\nIn many systems, a small number of endpoints generate most of the trace volume.\nTargeting these high-volume sources can significantly reduce overall data.",jl="Advanced Configuration",Gl="Configure sampling rules",Xl="Advanced mode allows you to configure all sampling categories:",Vl="Noise Filtering - remove non-actionable traces",Kl="Highly Relevance - guarantee important traces are kept",Yl='Cost Control - drop traces for "Normal" operations',Jl="Rules can target:",ql="Services",Ql="HTTP Endpoints",Zl="DB Operations",ec="Errors",tc="Latency and more...",oc="Sampling configured successfully!",nc="Your sampling configuration is ready.\nYou can add and adjust rules anytime in Sampling Rules space.",rc="Odigos will now:",ic="Filter noisy operations",ac="Guarantee important traces",sc="Reduce cost using controlled sampling",lc="Recommended",cc={noisy:"Rules that reduce noise from high-volume, low-value operations using Head Sampling.",highlyRelevant:"Add a rule to identify highly relevant operations. Traces with errors, long duration, or from critical endpoints and key workflows will be retained so important transactions are always available for analysis.",costReduction:"Rules that optimize costs by sampling less critical data using Tail Sampling."},dc={noisy:ks,highlyRelevant:Us,costReduction:zs},uc={noisy:Ls,highlyRelevant:Ms,costReduction:Bs},pc={noisy:"Noisy Operation",highlyRelevant:"Highly Relevant",costReduction:"Cost Reduction"},hc=[{id:jo.Logs,value:"Logs"},{id:jo.Metrics,value:"Metrics"},{id:jo.Traces,value:"Traces"},{id:jo.Profiles,value:"Profiles"}],gc=6048e5,mc=Pt()(Qt(e=>({darkMode:!0,setDarkMode:t=>e({darkMode:t})}),{name:En.DARK_MODE,storage:"undefined"!=typeof window?Zt(()=>localStorage):void 0})),fc={dataStreamsLoading:!1,dataStreams:[],selectedStreamName:yn},yc=Pt(e=>({...fc,setDataStreamsLoading:t=>e({dataStreamsLoading:t}),setDataStreams:t=>e({dataStreams:t}),addDataStreams:t=>e(e=>{const o=[...e.dataStreams,...t].map(e=>[e.name,e]);return{dataStreams:Array.from(new Map(o).values())}}),removeDataStreams:t=>e(e=>({dataStreams:e.dataStreams.filter(e=>!t.find(t=>t.name===e.name))})),setSelectedStreamName:t=>e({selectedStreamName:t}),resetDataStreamStore:()=>e(fc)}));var bc;(e=>{e.AddSource="add-source",e.EditSource="edit-source",e.AddDestination="add-destination",e.EditDestination="edit-destination",e.AddAction="add-action",e.EditAction="edit-action",e.AddInstrumentationRule="add-instrumentation-rule",e.EditInstrumentationRule="edit-instrumentation-rule",e.OnboardingDone="onboarding-done"})(bc||(bc={}));const vc=e=>`add-${ln(e).replaceAll(" ","-").toLowerCase()}`,Ec=e=>`edit-${ln(e).replaceAll(" ","-").toLowerCase()}`,Sc=Pt(e=>({drawerType:null,drawerEntityId:null,pendingViewSamplingRule:null,setDrawerType:t=>e({drawerType:t}),setDrawerEntityId:t=>e({drawerEntityId:t}),setPendingViewSamplingRule:t=>e({pendingViewSamplingRule:t})})),$c=()=>({searchText:"",statuses:[],platformTypes:[],namespaces:[],kinds:[],monitors:[],languages:[],podsAgentInjectionStatus:[],onlyErrors:!1}),Cc=Pt(e=>({searchText:"",setSearchText:t=>e({searchText:t}),statuses:[],setStatuses:t=>e({statuses:t}),platformTypes:[],setPlatformTypes:t=>e({platformTypes:t}),namespaces:[],setNamespaces:t=>e({namespaces:t}),kinds:[],setKinds:t=>e({kinds:t}),monitors:[],setMonitors:t=>e({monitors:t}),languages:[],setLanguages:t=>e({languages:t}),podsAgentInjectionStatus:[],setPodsAgentInjectionStatus:t=>e({podsAgentInjectionStatus:t}),onlyErrors:!1,setOnlyErrors:t=>e({onlyErrors:t}),setAll:t=>e(t),clearAll:()=>e({searchText:"",statuses:[],platformTypes:[],namespaces:[],kinds:[],monitors:[],languages:[],podsAgentInjectionStatus:[],onlyErrors:!1}),getEmptyState:$c})),xc=Pt((e,t)=>({notifications:[],addNotification:o=>{const n=new Date,r=`${n.getTime().toString()}${o.target?`#${o.target}`:""}`,{notifications:i}=t();i.some(e=>e.type===o.type&&e.title===o.title&&e.message===o.message&&!e.dismissed)||e(e=>({notifications:[{...o,id:r,time:n.toISOString(),dismissed:!1,seen:!1},...e.notifications]}))},markAsDismissed:t=>{e(e=>{const o=e.notifications.findIndex(e=>e.id===t);return-1!==o&&(e.notifications[o].dismissed=!0),{notifications:e.notifications}})},markAsSeen:t=>{e(e=>{const o=e.notifications.findIndex(e=>e.id===t);return-1!==o&&(e.notifications[o].seen=!0),{notifications:e.notifications}})},removeNotification:t=>{e(e=>{const o=e.notifications.findIndex(e=>e.id===t);return-1!==o&&e.notifications.splice(o,1),{notifications:e.notifications}})},removeNotifications:t=>{t&&e(e=>({notifications:e.notifications.filter(e=>e.id.split("#")[1]!==t)}))}}));var wc;(e=>{e.Instrumenting="instrumenting",e.Uninstrumenting="uninstrumenting",e.BulkInstrumenting="bulk-instrumenting",e.BulkUninstrumenting="bulk-uninstrumenting",e.DownloadingDiagnose="downloading-diagnose"})(wc||(wc={}));const Tc=(e,t)=>({...t?.[e]||{total:0,current:0,percentage:0}}),Oc=e=>(e.total<e.current&&(e.total=e.current+1),e.percentage=Math.round(e.current/e.total*100),e),Nc=Pt((e,t)=>({progress:{},setProgress:(o,n)=>{const r=t(),i=Tc();return"number"==typeof n.total&&(i.total=n.total),"number"==typeof n.current&&(i.current=n.current),Array.isArray(n.list)&&(i.list=n.list),e({progress:{...r.progress,[o]:Oc(i)}})},addProgress:(o,n,r)=>{const i=t(),a=Tc(o,i.progress);return a.current+=n,r&&(a.list=a.list?.map(e=>e.label===r.label?{...e,status:r.status}:e)),e({progress:{...i.progress,[o]:Oc(a)}})},resetProgress:t=>e({progress:{[t]:void 0}})})),Ic=Pt(e=>({selectedSources:{},setSelectedSources:t=>e({selectedSources:t}),resetSelectedState:()=>e(()=>({selectedSources:{},selectedConnection:null}))})),Ac={configuredSources:{},configuredFutureApps:{},configuredDestinations:[],configuredDestinationsUpdateOnly:[]},_c=(e,t)=>e.destinationType.type!==t.destinationType.type,Rc=Pt(e=>({...Ac,setConfiguredSources:t=>e({configuredSources:t}),setConfiguredFutureApps:t=>e({configuredFutureApps:t}),setConfiguredDestinations:t=>e({configuredDestinations:t}),addConfiguredDestination:t=>e(e=>({configuredDestinations:[...e.configuredDestinations,t]})),removeConfiguredDestination:t=>e(e=>({configuredDestinations:e.configuredDestinations.filter(e=>_c(e,t))})),setConfiguredDestinationsUpdateOnly:t=>e({configuredDestinationsUpdateOnly:t}),addConfiguredDestinationUpdateOnly:t=>e(e=>{const o=[...e.configuredDestinationsUpdateOnly,t].map(e=>[e.id,e]);return{configuredDestinationsUpdateOnly:Array.from(new Map(o).values())}}),removeConfiguredDestinationUpdateOnly:t=>e(e=>({configuredDestinationsUpdateOnly:e.configuredDestinationsUpdateOnly.filter(e=>_c(e,t))})),clearStore:()=>e(()=>({...Ac}))})),Dc=e=>{function t(){return void 0===e?{}:_n(e)}const[o,n]=Ft(t()),[r,i]=Ft({}),[a,s]=Ft(t()),l=Bt((e,t)=>{const o={};if(!t||"object"!=typeof t)return e?{...e}:o;for(const[n,r]of Object.entries(e)){const e=n;if(Array.isArray(r)){const n=t[e];Array.isArray(n)&&r.length===n.length&&r.every((e,t)=>"object"==typeof e&&null!==e?0===Object.keys(l(e,n[t])).length:e===n[t])||(o[e]=t[e])}else if("object"==typeof r&&null!==r)if(null==t[e]||"object"!=typeof t[e])o[e]=t[e];else{const n=l(r,t[e]);Object.keys(n).length>0&&(o[e]=n)}else r!==t[e]&&(o[e]=t[e])}for(const n of Object.keys(t))n in e||(o[n]=t[n]);return o},[]),c=(e,t)=>0===Object.keys(l(e,t)).length,d=Ht(()=>!c(a,o),[a,o]);zt(()=>{const r=t();void 0!==e&&"{}"===JSON.stringify(o)&&"{}"!==JSON.stringify(r)&&(n(r),s(r))},[e,o]);const u=Bt((e,t)=>Rn("formData"===e?o:r,t.toString()),[o,r]);return{formData:o,formErrors:r,getFormDiff:l,areFormValuesEqual:c,isFormDirty:d,handleFormChange:(e,t,o)=>{if(e){const o=e.toString(),r=o.split(".");1===r.length?n(o=>({...o,[e]:t})):n(e=>{const o=_n(e);let n=o;for(let e=0;e<r.length-1;e++){const t=r[e];n[t]&&"object"==typeof n[t]||(n[t]={}),n=n[t]}return n[r[r.length-1]]=t,o}),i(e=>{const t=o,n=r[r.length-1],i=void 0!==e[t],a=n!==t&&void 0!==e[n];if(!i&&!a)return e;const s={...e};return i&&delete s[t],a&&delete s[n],s})}else o&&n({...o})},handleErrorChange:(e,t,o)=>{if(e){const o=e.toString().split(".");1===o.length?i(o=>({...o,[e]:t})):i(e=>{const n=_n(e);let r=n;for(let e=0;e<o.length-1;e++){const t=o[e];r[t]&&"object"==typeof r[t]||(r[t]={}),r=r[t]}return r[o[o.length-1]]=t,n})}else o&&i({...o})},resetFormData:e=>{const o=e||t();n(o),s(o),i({})},getNestedValue:u}},kc={type:"",name:"",notes:"",signals:[],disabled:!1,fields:{clusterAttributes:null,overwriteExistingValues:null,renames:null,attributeNamesToDelete:null,piiCategories:null,urlTemplatizationRulesGroups:null,extractAttribute:null}},Lc=()=>{const{addNotification:e}=xc(),{formData:t,formErrors:o,handleFormChange:n,handleErrorChange:r,resetFormData:i}=Dc(kc);return{formData:t,formErrors:o,handleFormChange:n,resetFormData:i,validateForm:o=>{const n={};let i=!0;if(Object.entries(t).forEach(([e,t])=>{switch(e){case"type":case"signals":pi(t)&&(n[e]=Sn.FIELD_IS_REQUIRED)}}),t.type===no.URLTemplatization){const e=t.fields?.urlTemplatizationRulesGroups;if(e)for(const t of e)if(t.templatizationRules?.some(e=>!e.template?.trim())){n.fields=Sn.FIELD_IS_REQUIRED;break}}return i=!Object.values(n).length,!i&&o?.withAlert&&e({type:wo.Warning,title:o.alertTitle,message:Sn.REQUIRED_FIELDS,hideFromHistory:!0}),r(void 0,void 0,n),i},loadFormWithDrawerItem:({type:e,signals:t,name:o,notes:r,disabled:i,fields:a})=>{const s={..._n(kc),type:e,signals:t,name:o,notes:r,disabled:i};Object.entries(a).forEach(([e,t])=>{if(t)switch(e){case ro.LabelsAttributes:case ro.AnnotationsAttributes:s.fields||(s.fields={}),s.fields[e]=(o=t)&&Array.isArray(o)?o.map(e=>!e.fromSources?.length&&e.from?{...e,fromSources:[e.from]}:e):o;break;case ro.CollectContainerAttributes:case ro.CollectReplicaSetAttributes:case ro.CollectWorkloadId:case ro.CollectClusterId:case ro.ClusterAttributes:case ro.OverwriteExistingValues:case ro.AttributeNamesToDelete:case ro.Renames:case ro.PiiCategories:case ro.ExtractAttribute:case ro.UrlTemplatizationRulesGroups:s.fields||(s.fields={}),s.fields[e]=t}var o}),n(void 0,void 0,s)}}},Pc=e=>{zt(()=>{if(e){const e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}},[e])},Uc=()=>{const e=Wt(null),[t,o]=Ft(0),[n,r]=Ft(0);return zt(()=>{const t=()=>{if(e.current){const{width:t,height:n}=e.current.getBoundingClientRect();o(t),r(n)}};return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[]),{containerRef:e,containerWidth:t,containerHeight:n}};var Mc;(e=>{e[e.XS=16]="XS",e[e.S=18]="S",e[e.M=24]="M",e[e.L=32]="L"})(Mc||(Mc={}));const Fc=n.div`
|
|
195
|
+
`,Jr=e=>{const t=Math.max(0,Date.now()-e),o=Math.floor(t/1e3),n=Math.floor(o/60),r=o%60;return`${String(n).padStart(2,"0")}:${String(r).padStart(2,"0")}`},qr=({icon:o,title:n,titleColor:r,titleSize:a=dn.S,subTitle:s,subTitleColor:l,subTitleSize:c=dn.XXXS,startedAt:d,withGradient:u,gradientColor:p,withSpinner:h,withSpinnerOld:g,scaleSpinnerOld:m=1,percentage:f,withVisual:y,visualIcon:b=Ze})=>{const v=i(),[E,S]=Ft(()=>d?Jr(d):"");zt(()=>{if(!d)return;S(Jr(d));const e=setInterval(()=>S(Jr(d)),1e3);return()=>clearInterval(e)},[d]);const $=r||v.v2.colors.white[500],C=l||v.v2.colors.silver[200],x=p||v.v2.colors.black[500];return t(zr,{$gap:16,$alignItems:"center",children:[y?e(Nr,{scale:1.7,icon:b}):h?e(Sr,{percentage:f}):g?e(Tr,{scale:m}):null,(n||s||d||o||u)&&t(zr,{$gap:8,$alignItems:"center",children:[t(Fr,{$gap:4,children:[o&&e(o,{}),u?e(Yr,{align:"center",size:a,$titleColor:$,$gradientColor:x,nowrap:!0,children:n||"Loading..."}):n?e(mn,{align:"center",size:a,color:$,children:n}):null]}),s?e(mn,{align:"center",size:c,color:C,children:s}):null,E?e(mn,{align:"center",size:c,color:$,children:E}):null]})]})},Qr=(e,t)=>({[wo.Default]:o=>ae({fill:fr(t,e,"300"),...o}),[wo.Info]:o=>nt({fill:fr(t,e,"400"),...o}),[wo.Error]:o=>ot({fill:fr(t,e,"500"),...o}),[wo.Warning]:o=>tt({fill:fr(t,e,"500"),...o}),[wo.Success]:o=>v({fill:fr(t,e,"500"),...o}),[wo.Loading]:e=>qr({withSpinnerOld:!0,...e}),[wo.Disabled]:o=>E({fill:fr(t,e,"400"),...o}),[wo.Unknown]:o=>et({fill:fr(t,e,"300"),...o})}[e]),Zr=e=>{switch(e){case ko.Success:return wo.Success;case ko.Error:case ko.Failure:return wo.Error;case ko.Notice:return wo.Warning;case ko.Unsupported:case ko.Unknown:return wo.Info;case ko.Irrelevant:case ko.Disabled:return wo.Disabled;case ko.Waiting:return wo.Loading;case ko.Pending:default:return wo.Default}},ei=(e,t)=>{const o=t.find(([t,o])=>e>=t&&(null===o||e<=o));return o?.[2]||null},ti={redis:$,mysql:w,postgresql:C,postgres:C,kafka:S,elasticsearch:xe,clickhouse:_e,oracle:oe,aws:rt},oi={sts:ft,dynamodb:mt,s3:J,sqs:gt,sns:ht,lambda:pt,kinesis:ut,ec2:dt,apigateway:ct,apigatewayv2:ct,bedrock:lt,bedrockruntime:lt,eventbridge:st,sfn:at,stepfunctions:at,secretsmanager:it,cloudwatch:Ae},ni=e=>{const t=e.attributes,o=t["db.system"];if(o){const e=ti[o.toLowerCase()];if(e)return e}const n=t["messaging.system"];if(n){const e=ti[n.toLowerCase()];if(e)return e}const r=t["rpc.system"];if(r?.toLowerCase().includes("aws")){const e=t["rpc.service"]?.toLowerCase();if(e){const t=oi[e];if(t)return t}return rt}const i=e.serviceName.toLowerCase();for(const[e,t]of Object.entries(ti))if(i.includes(e))return t;return Ge},ri=e=>{if(!e)return{namespace:"",name:"",kind:""};if("id"in e&&"object"==typeof e.id)return{namespace:e.id.namespace,name:e.id.name,kind:e.id.kind,region:e.id.region||void 0};const{namespace:t,name:o,kind:n,region:r}=e;return{namespace:t,name:o,kind:n,region:r||void 0}};function ii(e,t){if(!e)return t;if("object"==typeof e)return e;try{return JSON.parse(e)}catch(e){return t}}const ai=(e,t)=>{const o=[],n=JSON.parse(JSON.stringify(e));for(const e of n){const n=ii(t.fields,{}),r=e.items.findIndex(e=>e.type===t.destinationType.type);-1!==r&&o.push(...e.items[r].fields.map(e=>({...e,initialValue:n[e.name]})))}return o},si=(e,t)=>{const o=e=>e?.some(({healthy:e})=>e.status!==wo.Success);return e?.length?e.some(({instrumentationInstances:e})=>o(e)):o(t)??!1};function li(e){if(!e||0===e.length)return null;const t=[],o=[],n=[];for(const r of e){if(!r)continue;const e=r.workloadName??"",i=r.workloadKind??"",a=r.workloadNamespace??"",s=r.workloadLanguage??"";e||i?t.push({namespace:a,kind:i,name:e}):a&&o.push(a),s&&n.push(s)}return 0===t.length&&0===o.length&&0===n.length?null:{sources:t,namespaces:o,languages:n}}function ci(e){if(!e)return null;const t=[];for(const o of e.sources??[])t.push({workloadName:o.name||null,workloadKind:o.kind||null,workloadNamespace:o.namespace||null});for(const o of e.namespaces??[])t.push({workloadNamespace:o});for(const o of e.languages??[])t.push({workloadLanguage:o});return t.length?t:null}function di(e){const{sourcesScopes:t,...o}=e;return{...o,sourceScopes:li(t??null)}}function ui(e){const{sourceScopes:t,...o}=e;return{...o,sourcesScopes:ci(t??null)}}const pi=e=>Array.isArray(e)?!e?.length:"object"==typeof e?!Object.keys(e||{}).length:[void 0,null,""].includes(e),hi=e=>!!e&&(!(e.length>63)&&/^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$/.test(e)),gi=(e,t=0)=>{const o=(new Date).getTime();return new Date(e).getTime()-o<=t},mi=e=>{const t=String(e).trim().toLowerCase();return["true","false","1","0"].includes(t)},fi=(e,t=0)=>(new Date).getTime()-new Date(e).getTime()>=t,yi=/^(\d+\.)?(\d+\.)?(\*|\d+)$/,bi=e=>yi.test(e),vi=e=>e?.map(({status:e,type:t,reason:o,message:n})=>({status:e?.toLowerCase(),type:ln(t),reason:o?ln(o):"",message:n}))||[],Ei=(e,t)=>{const o=ii(e.fields,{});return t.length?t.map(e=>({key:e.name,name:e.displayName||e.name,value:o[e.name]??null})).filter(e=>null!==e.value):Object.entries(o).map(([e,t])=>({key:e,name:e,value:t}))},Si=e=>e?Object.keys(e).filter(t=>e[t]).map(e=>Yo[e]):[],$i=e=>e?Object.keys(e).filter(t=>e[t].supported).map(e=>Yo[e]):[],Ci=e=>{let t=e.replace(/[^\d.]/g,"");const o=t.indexOf(".");return-1!==o&&(t=t.slice(0,o+1)+t.slice(o+1).replace(/\./g,"")),t},xi=e=>e.replace(/[^\d]/g,""),wi=e=>{const t=String(e).trim().toLowerCase();return"true"===t||"1"===t},Ti=e=>{let t="";try{const o=JSON.parse(e);t=Array.isArray(o)?o.map(e=>"object"==typeof e&&null!==e?`${e.key}: ${e.value}`:e).join(", "):"object"==typeof o&&null!==o?Object.entries(o).map(([e,t])=>`${e}: ${t}`).join(", "):e}catch(o){t=e}return t},Oi=e=>{const t=e.fields.reduce((e,{key:t,value:o})=>{const n=(e=>{if(null!=e){if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return String(e);try{return JSON.stringify(e)}catch{return}}})(o);return void 0!==n&&e.push({key:t,value:n}),e},[]);return{...e,fields:t}},Ni=e=>{if("object"!=typeof e)return e;const t=Array.isArray(e)?[]:{};return Object.keys(e).forEach(o=>{const n=e[o];if(Array.isArray(n)){const e=n.filter(e=>null!=e&&""!==e);e.length>0&&(t[o]=e.map(e=>Ni(e)))}else if("object"==typeof n&&null!==n){const e=Ni(n);Object.keys(e).length>0&&(t[o]=e)}else[void 0,null,""].includes(n)||(t[o]=n)}),t},Ii=(e,t=2)=>JSON.stringify(e||{},null,t),Ai=async(e=1e3)=>new Promise(t=>setTimeout(t,e)),_i=e=>Object.entries(e).reduce((e,[t,o])=>(e[t]="string"==typeof o?o:JSON.stringify(o),e),{}),Ri={PID:"process.pid",VPID:"process.vpid"},Di={[vo.Go]:"Go",[vo.Java]:"Java",[vo.JavaScript]:"Node.js",[vo.Python]:"Python",[vo.DotNet]:".NET",[vo.CSharp]:"C#",[vo.CPlusPlus]:"C++",[vo.Php]:"PHP",[vo.Ruby]:"Ruby",[vo.Rust]:"Rust",[vo.Swift]:"Swift",[vo.Elixir]:"Elixir",[vo.MySql]:"MySQL",[vo.Nginx]:"Nginx",[vo.Postgres]:"PostgreSQL",[vo.Redis]:"Redis",[vo.Kafka]:"Kafka",[vo.Ignored]:"Ignored",[vo.Unknown]:"Unknown",[vo.Processing]:"Processing",[vo.NoContainers]:"No Containers",[vo.NoRunningPods]:"No Running Pods"},ki=[{id:vo.Go,label:Di[vo.Go],icon:Xn(vo.Go)},{id:vo.Java,label:Di[vo.Java],icon:Xn(vo.Java)},{id:vo.JavaScript,label:Di[vo.JavaScript],icon:Xn(vo.JavaScript)},{id:vo.Python,label:Di[vo.Python],icon:Xn(vo.Python)},{id:vo.Php,label:Di[vo.Php],icon:Xn(vo.Php)},{id:vo.Ruby,label:Di[vo.Ruby],icon:Xn(vo.Ruby)},{id:vo.Rust,label:Di[vo.Rust],icon:Xn(vo.Rust)},{id:vo.DotNet,label:Di[vo.DotNet],icon:Xn(vo.DotNet)},{id:vo.CSharp,label:Di[vo.CSharp],icon:Xn(vo.CSharp)},{id:vo.CPlusPlus,label:Di[vo.CPlusPlus],icon:Xn(vo.CPlusPlus)},{id:vo.Swift,label:Di[vo.Swift],icon:Xn(vo.Swift)},{id:vo.Elixir,label:Di[vo.Elixir],icon:Xn(vo.Elixir)}],Li={id:Do.OpentelemetryEbpfInstrumentation,label:Do.OpentelemetryEbpfInstrumentation,icon:yt},Pi={[vo.Go]:{community:[{id:Do.GolangCommunity,label:Do.GolangCommunity,icon:Xn(vo.Go)},Li],enterprise:[{id:Do.GolangEnterprise,label:Do.GolangEnterprise,icon:Xn(vo.Go)}]},[vo.JavaScript]:{community:[{id:Do.NodejsCommunity,label:Do.NodejsCommunity,icon:Xn(vo.JavaScript)},Li],enterprise:[{id:Do.NodejsEnterprise,label:Do.NodejsEnterprise,icon:Xn(vo.JavaScript)}]},[vo.Python]:{community:[{id:Do.PythonCommunity,label:Do.PythonCommunity,icon:Xn(vo.Python)},Li],enterprise:[{id:Do.PythonEnterprise,label:Do.PythonEnterprise,icon:Xn(vo.Python)}]},[vo.Java]:{community:[{id:Do.JavaCommunity,label:Do.JavaCommunity,icon:Xn(vo.Java)},Li],enterprise:[{id:Do.JavaEnterprise,label:Do.JavaEnterprise,icon:Xn(vo.Java)},{id:Do.JavaEbpfInstrumentations,label:Do.JavaEbpfInstrumentations,icon:Xn(vo.Java)}]},[vo.DotNet]:{community:[{id:Do.DotNetCommunity,label:Do.DotNetCommunity,icon:Xn(vo.DotNet)},Li],enterprise:[{id:Do.DotNetEnterprise,label:Do.DotNetEnterprise,icon:Xn(vo.DotNet)}]},[vo.Ruby]:{community:[{id:Do.RubyCommunity,label:Do.RubyCommunity,icon:Xn(vo.Ruby)},Li],enterprise:[{id:Do.RubyEnterprise,label:Do.RubyEnterprise,icon:Xn(vo.Ruby)}]},[vo.Php]:{community:[{id:Do.PhpCommunity,label:Do.PhpCommunity,icon:Xn(vo.Php)},Li],enterprise:[]},[vo.CSharp]:{community:[],enterprise:[{id:Do.CPlusPlusEnterprise,label:Do.CPlusPlusEnterprise,icon:Xn(vo.CSharp)}]},[vo.MySql]:{community:[],enterprise:[{id:Do.MySqlEnterprise,label:Do.MySqlEnterprise,icon:Xn(vo.MySql)}]},[vo.CPlusPlus]:{community:[Li],enterprise:[]},[vo.Rust]:{community:[Li],enterprise:[]},[vo.Swift]:{community:[Li],enterprise:[]},[vo.Elixir]:{community:[Li],enterprise:[]},[vo.Nginx]:{community:[Li],enterprise:[]},[vo.Postgres]:{community:[Li],enterprise:[]},[vo.Redis]:{community:[Li],enterprise:[]},[vo.Kafka]:{community:[Li],enterprise:[]},[vo.Ignored]:{community:[],enterprise:[]},[vo.Unknown]:{community:[Li],enterprise:[]},[vo.Processing]:{community:[],enterprise:[]},[vo.NoContainers]:{community:[],enterprise:[]},[vo.NoRunningPods]:{community:[],enterprise:[]}},Ui="*",Mi=e=>!!e?.includes(Ui),Fi=e=>e?.length?Mi(e)?[Ui]:e:[],zi=e=>{if(e?.length&&!Mi(e))return e.filter(e=>e!==Ui)},Bi=e=>e===Ui?"All languages":Di[e]??e,Hi=e=>e===Ui?bt:Xn(e),Wi=[{type:Lo.CodeAttributes,icon:sn(Lo.CodeAttributes),label:"Code Attributes",description:'The "Code Attributes" rule can be used to add code attributes containing payload data to traces.',docsUrl:"https://docs.odigos.io/pipeline/rules/codeattributes",supportedLanguages:[vo.Go,vo.Python,vo.JavaScript]},{type:Lo.CustomInstrumentation,icon:sn(Lo.CustomInstrumentation),label:"Custom Instrumentation",description:'The "Custom Instrumentation" rule can be used to instrument a specific symbol (i.e. for Golang), or a class and method combination (i.e. for Java) for detailed tracing.',docsUrl:"https://docs.odigos.io/pipeline/rules/custominstrumentation",supportedLanguages:[vo.Go,vo.Java]},{type:Lo.HeadersCollection,icon:sn(Lo.HeadersCollection),label:"Headers Collection",description:'The "Headers Collection" rule can be used to add span attributes containing HTTP Headers data to traces.',docsUrl:"https://docs.odigos.io/pipeline/rules/headerscollection",supportedLanguages:[vo.Go,vo.Java,vo.JavaScript]},{type:Lo.PayloadCollection,icon:sn(Lo.PayloadCollection),label:"Payload Collection",description:'The "Payload Collection" rule can be used to add span attributes containing payload data to traces.',docsUrl:"https://docs.odigos.io/pipeline/rules/payloadcollection",supportedLanguages:[vo.Go,vo.JavaScript]}],ji=e=>{const t=e?.instrumentationRuleTypes;return t?.length?t.map(e=>({type:e.type,icon:sn(e.type),label:e.displayName,description:e.description,docsUrl:e.docsUrl,supportedLanguages:e.supportedLanguages??[],fields:e.fields})):[]},Gi={TITLE:"Regex Testing",REGEX_LABEL:"Regex",REGEX_EMPTY_HINT:"No regex to test - fill in the regex field on the row first.",TEST_STRING_LABEL:"Test string",TEST_STRING_PLACEHOLDER:"Paste a span attribute payload to test the regex against...",TEST_STRING_HELP:'The regex runs verbatim against this string. Paste the actual attribute value the processor will see - if your sample came from a log dump with JSON-escaped quotes (\\"), click Unescape first.',RESULT_LABEL:"Result",RESULT_CAPTURE_HINT:"This is the value that will be written to the new span attribute.",RESULT_EMPTY_REGEX:"Enter a regex to test.",RESULT_EMPTY_INPUT:"Enter a test string to see the result.",RESULT_NO_MATCH:"No match found.",RESULT_INVALID_REGEX_FALLBACK:"Invalid regex pattern.",UNESCAPE_LABEL:"Unescape",UNESCAPE_TOOLTIP:'Convert escape sequences (\\", \\n, \\t, \\\\) into their literal characters. Useful when pasting log output that JSON-escapes attribute values.'},Xi={SEGMENT_PRESET_LABEL:"Preset extract",SEGMENT_PRESET_TOOLTIP:"Extract a value from an existing attribute using a pre-set pattern (JSON, SQL, or Resource path).",SEGMENT_REGEX_LABEL:"Custom Regex",SEGMENT_REGEX_TOOLTIP:"Extract a value using your own regular expression with a single capture group.",PRESET_ROW_TITLE:e=>`Data format ${e+1}`,REGEX_ROW_TITLE:e=>`Custom Regex ${e+1}`,TEST_REGEX_LABEL:"Test Regex",REGEX_LABEL:"Regex",REGEX_PLACEHOLDER:"e.g. (?:^|[\\s,{(\"'])[\"']?study_id[\"']?\\s*[:=]\\s*[\"']?([^\"'\\s,;)}]+)",REGEX_HELP:"A regex with a single capture group; the captured value becomes the new attribute.",TARGET_LABEL:"New span attribute name",TARGET_PLACEHOLDER:"e.g. customerId",TARGET_HELP:"The name of the new extracted attribute."},Vi={[uo.JSON]:{label:"JSON",keyLabel:"JSON key",placeholder:"e.g. customer_id",helpMessage:"Type the JSON key containing the value to extract."},[uo.SQL]:{label:"SQL",keyLabel:"SQL key",placeholder:"e.g. invoice_id",helpMessage:"Type the SQL key containing the value to extract."},[uo.ResourcePath]:{label:"Resource path",keyLabel:"Resource path key",placeholder:"e.g. tenants",helpMessage:"Type the resource name containing the value to extract."}},Ki="Cancel",Yi="Save",Ji="Edit rule",qi="Edit auto rule",Qi="Create rule",Zi="Delete rule",ea="Save",ta="Create your first rule",oa="No Rules Exist",na="No Results",ra=e=>`No rules match the search term "${e}"`,ia="Rule name",aa="Rule type",sa="Select the type of condition that makes a trace highly relevant.",la="Rule Enabled",ca="Rule Disabled",da="Enabled",ua="Disabled",pa="Note",ha="HTTP route",ga="Method",ma="Keep Percentage",fa="Keep traces with duration larger than",ya="Keep traces with errors",ba="Keep at least this percentage of matching traces. A higher rate from another matching rule may apply instead.",va="Keep at most this percentage of matching traces. A lower rate from another matching rule may apply instead.",Ea="Custom percentage",Sa="Disabled rule",$a="Sample",Ca="Keep all",xa="Drop all",wa="Operation type",Ta="HTTP route prefix",Oa="Templated path",Na="Templated path prefix",Ia="Kafka topic",Aa="Custom duration (ms)",_a="No preview available",Ra="Server address",Da="Drop at most this percentage of matching traces",ka="Unnamed rule",La="Sampling Preview",Pa="Source Scope",Ua="Unknown source",Ma="Operation",Fa="Duration",za="Errors",Ba="Keep Percentage",Ha="Define which sources this rule applies to. You can target specific services, namespaces, or apply the rule to the entire cluster.",Wa="Define which operations this rule applies to. You can target specific endpoints or requests, or apply the rule to all operations in the selected services.",ja="Define a duration threshold for this rule. Traces with a duration longer than the specified value will be considered important and retained.",Ga="Retain traces with errors from the selected services and operations.",Xa="Use Keep All to retain every matching trace, or Sample when keeping everything is too expensive. 100% means keep all",Va="Use Drop All to discard every matching trace, or Sample to keep some examples. 0% means drop all.",Ka={highlyRelevant:Xa,noisy:Va,costReduction:void 0},Ya="Type rule name",Ja="Add note here...",qa="Type here",Qa="Search source name",Za="e.g. collector.my.vendor.com",es="Optional notes (not used by the system). Add any context or details for this sampling rule.",ts="Rule will apply to all sources in the cluster",os="If multiple source scopes are set, they must all match simultaneously.",ns="All sources",rs="-",is="All",as="Sources",ss="Namespaces",ls="Languages",cs="any of",ds="AND",us="All operations",ps="HTTP server endpoint",hs="HTTP client endpoint",gs="Kafka consumer",ms="Kafka producer",fs="Sampling Rules",ys='Control how traces are categorized based on "Importance" and potential value, for fine grain control of what is kept and what is dropped.',bs="Refresh",vs="Create rule",Es="Sampling docs",Ss="75vw",$s="Delete rule?",Cs="Are you sure you want to delete this sampling rule?",xs="Delete",ws="Cancel",Ts="Kubernetes Health Probes",Os="Keep All Error Traces",Ns="Drop Traces Cluster-Wide",Is="A rule with the same matching conditions already exists.",As="Create this rule as-is?",_s="This rule still uses the default configuration.\nDo you want to create it anyway?",Rs="Rule preview",Ds="Continue editing",ks="Create 'Noisy Operation Kubernetes Health Probes' rule",Ls="Edit 'Noisy Operation Kubernetes Health Probes' rule",Ps="Automatically detect and sample health probe traces across the cluster.",Us="Create 'Highly Relevant Operations' rule",Ms="Edit 'Highly Relevant Operations' rule",Fs="Automatically keep all error traces across the entire cluster.",zs="Create 'Cost Reduction' rule",Bs="Edit 'Cost Reduction' rule",Hs="Automatically drop a percentage of traces across the entire cluster.",Ws="Skip setup",js="Start setup",Gs="Next",Xs="Go to Sampling",Vs="Read more",Ks="Welcome to Sampling",Ys="Cut costs without losing what matters",Js="Odigos sampling works in three stages:",qs="Filter noisy traffic",Qs="Remove non-actionable traces like health checks.",Zs="Guarantee highly relevance operations",el="Keep traces with errors, high latency, or mission-critical endpoints/services.",tl="Reduce cost",ol="Sample routine traffic using percentages.",nl="Sampling does not drop individual spans - it keeps or drops the entire trace.",rl="Filter noisy operations",il="Cut traces with little or no observability value (health-checks, metric scarping, etc)",al="Odigos filters these efficiently, dropping them early with almost no resource cost.\n\nSampling happens at request start, so only root span attributes available at that moment can be used. Later insights about the trace (errors, latency) - aren’t available.",sl="Preset Rules",ll="Kubernetes Health Probes",cl="Automatically ignore health checks",dl="You can review, adjust, and add additional custom rules later.",ul="Choose your sampling strategy",pl="Pick the approach that best fits your balance of cost vs data-completeness",hl="Keep List",gl="Budget Friendly",ml="Define which traces must be kept, while all others are sampled by default to minimize cost.",fl="Cost-oriented - keeps only what you explicitly select.",yl="Best for very large clusters with high volumes of traces and high costs.",bl="Higher risk of missing important traces without ongoing review.",vl="Drop List",El="Safe Choice",Sl="Define which traces must be aggressively dropped, while all others are kept by default.",$l="Preserves most data unless explicitly filtered.",Cl="Safer by default - gaps in rules or system changes increase cost rather than risk losing important traces.",xl="Advanced",wl="Maximum Flexibility",Tl="Full control over all sampling rules and categories.\n\nBest for advanced users who want complete flexibility.",Ol="'Keep List' profile",Nl="Protect important traces",Il="Start by setting the default sampling rate for all traces.\nThen define rules to exclude highly relevant traces so they are guaranteed to be kept\n\nCommon use-cases include:",Al="Traces with errors",_l="Slow requests (duration above threshold)",Rl="Mission-Critical endpoints or services",Dl="Services under test or evaluation",kl="New deployments",Ll="You can review, adjust, and add rules once onboarding is complete.",Pl="Common Rules",Ul="Preset Rules",Ml="Error collection - entire cluster",Fl="Keep all traces with errors",zl="Ambient sampling percentage",Bl="'Drop List' profile",Hl="Reduce high-volume traffic",Wl="Start by keeping all traces by default. Then define rules to drop high-volume or low-value traces to reduce overall volume and cost.\n\nIn many systems, a small number of endpoints generate most of the trace volume.\nTargeting these high-volume sources can significantly reduce overall data.",jl="Advanced Configuration",Gl="Configure sampling rules",Xl="Advanced mode allows you to configure all sampling categories:",Vl="Noise Filtering - remove non-actionable traces",Kl="Highly Relevance - guarantee important traces are kept",Yl='Cost Control - drop traces for "Normal" operations',Jl="Rules can target:",ql="Services",Ql="HTTP Endpoints",Zl="DB Operations",ec="Errors",tc="Latency and more...",oc="Sampling configured successfully!",nc="Your sampling configuration is ready.\nYou can add and adjust rules anytime in Sampling Rules space.",rc="Odigos will now:",ic="Filter noisy operations",ac="Guarantee important traces",sc="Reduce cost using controlled sampling",lc="Recommended",cc={noisy:"Rules that reduce noise from high-volume, low-value operations using Head Sampling.",highlyRelevant:"Add a rule to identify highly relevant operations. Traces with errors, long duration, or from critical endpoints and key workflows will be retained so important transactions are always available for analysis.",costReduction:"Rules that optimize costs by sampling less critical data using Tail Sampling."},dc={noisy:ks,highlyRelevant:Us,costReduction:zs},uc={noisy:Ls,highlyRelevant:Ms,costReduction:Bs},pc={noisy:"Noisy Operation",highlyRelevant:"Highly Relevant",costReduction:"Cost Reduction"},hc=[{id:jo.Logs,value:"Logs"},{id:jo.Metrics,value:"Metrics"},{id:jo.Traces,value:"Traces"},{id:jo.Profiles,value:"Profiles"}],gc=6048e5,mc=Pt()(Qt(e=>({darkMode:!0,setDarkMode:t=>e({darkMode:t})}),{name:En.DARK_MODE,storage:"undefined"!=typeof window?Zt(()=>localStorage):void 0})),fc={dataStreamsLoading:!1,dataStreams:[],selectedStreamName:yn},yc=Pt(e=>({...fc,setDataStreamsLoading:t=>e({dataStreamsLoading:t}),setDataStreams:t=>e({dataStreams:t}),addDataStreams:t=>e(e=>{const o=[...e.dataStreams,...t].map(e=>[e.name,e]);return{dataStreams:Array.from(new Map(o).values())}}),removeDataStreams:t=>e(e=>({dataStreams:e.dataStreams.filter(e=>!t.find(t=>t.name===e.name))})),setSelectedStreamName:t=>e({selectedStreamName:t}),resetDataStreamStore:()=>e(fc)}));var bc;(e=>{e.AddSource="add-source",e.EditSource="edit-source",e.AddDestination="add-destination",e.EditDestination="edit-destination",e.AddAction="add-action",e.EditAction="edit-action",e.AddInstrumentationRule="add-instrumentation-rule",e.EditInstrumentationRule="edit-instrumentation-rule",e.OnboardingDone="onboarding-done"})(bc||(bc={}));const vc=e=>`add-${ln(e).replaceAll(" ","-").toLowerCase()}`,Ec=e=>`edit-${ln(e).replaceAll(" ","-").toLowerCase()}`,Sc=Pt(e=>({drawerType:null,drawerEntityId:null,pendingViewSamplingRule:null,setDrawerType:t=>e({drawerType:t}),setDrawerEntityId:t=>e({drawerEntityId:t}),setPendingViewSamplingRule:t=>e({pendingViewSamplingRule:t})})),$c=()=>({searchText:"",statuses:[],platformTypes:[],namespaces:[],regions:[],kinds:[],monitors:[],languages:[],podsAgentInjectionStatus:[],onlyErrors:!1}),Cc=Pt(e=>({searchText:"",setSearchText:t=>e({searchText:t}),statuses:[],setStatuses:t=>e({statuses:t}),platformTypes:[],setPlatformTypes:t=>e({platformTypes:t}),namespaces:[],setNamespaces:t=>e({namespaces:t}),regions:[],setRegions:t=>e({regions:t}),kinds:[],setKinds:t=>e({kinds:t}),monitors:[],setMonitors:t=>e({monitors:t}),languages:[],setLanguages:t=>e({languages:t}),podsAgentInjectionStatus:[],setPodsAgentInjectionStatus:t=>e({podsAgentInjectionStatus:t}),onlyErrors:!1,setOnlyErrors:t=>e({onlyErrors:t}),setAll:t=>e(t),clearAll:()=>e({searchText:"",statuses:[],platformTypes:[],namespaces:[],regions:[],kinds:[],monitors:[],languages:[],podsAgentInjectionStatus:[],onlyErrors:!1}),clearFilters:()=>e({statuses:[],platformTypes:[],namespaces:[],regions:[],kinds:[],monitors:[],languages:[],podsAgentInjectionStatus:[],onlyErrors:!1}),getEmptyState:$c})),xc=Pt((e,t)=>({notifications:[],addNotification:o=>{const n=new Date,r=`${n.getTime().toString()}${o.target?`#${o.target}`:""}`,{notifications:i}=t();i.some(e=>e.type===o.type&&e.title===o.title&&e.message===o.message&&!e.dismissed)||e(e=>({notifications:[{...o,id:r,time:n.toISOString(),dismissed:!1,seen:!1},...e.notifications]}))},markAsDismissed:t=>{e(e=>{const o=e.notifications.findIndex(e=>e.id===t);return-1!==o&&(e.notifications[o].dismissed=!0),{notifications:e.notifications}})},markAsSeen:t=>{e(e=>{const o=e.notifications.findIndex(e=>e.id===t);return-1!==o&&(e.notifications[o].seen=!0),{notifications:e.notifications}})},removeNotification:t=>{e(e=>{const o=e.notifications.findIndex(e=>e.id===t);return-1!==o&&e.notifications.splice(o,1),{notifications:e.notifications}})},removeNotifications:t=>{t&&e(e=>({notifications:e.notifications.filter(e=>e.id.split("#")[1]!==t)}))}}));var wc;(e=>{e.Instrumenting="instrumenting",e.Uninstrumenting="uninstrumenting",e.BulkInstrumenting="bulk-instrumenting",e.BulkUninstrumenting="bulk-uninstrumenting",e.DownloadingDiagnose="downloading-diagnose"})(wc||(wc={}));const Tc=(e,t)=>({...t?.[e]||{total:0,current:0,percentage:0}}),Oc=e=>(e.total<e.current&&(e.total=e.current+1),e.percentage=Math.round(e.current/e.total*100),e),Nc=Pt((e,t)=>({progress:{},setProgress:(o,n)=>{const r=t(),i=Tc();return"number"==typeof n.total&&(i.total=n.total),"number"==typeof n.current&&(i.current=n.current),Array.isArray(n.list)&&(i.list=n.list),e({progress:{...r.progress,[o]:Oc(i)}})},addProgress:(o,n,r)=>{const i=t(),a=Tc(o,i.progress);return a.current+=n,r&&(a.list=a.list?.map(e=>e.label===r.label?{...e,status:r.status}:e)),e({progress:{...i.progress,[o]:Oc(a)}})},resetProgress:t=>e({progress:{[t]:void 0}})})),Ic=Pt(e=>({selectedSources:{},setSelectedSources:t=>e({selectedSources:t}),resetSelectedState:()=>e(()=>({selectedSources:{},selectedConnection:null}))})),Ac={configuredSources:{},configuredFutureApps:{},configuredDestinations:[],configuredDestinationsUpdateOnly:[]},_c=(e,t)=>e.destinationType.type!==t.destinationType.type,Rc=Pt(e=>({...Ac,setConfiguredSources:t=>e({configuredSources:t}),setConfiguredFutureApps:t=>e({configuredFutureApps:t}),setConfiguredDestinations:t=>e({configuredDestinations:t}),addConfiguredDestination:t=>e(e=>({configuredDestinations:[...e.configuredDestinations,t]})),removeConfiguredDestination:t=>e(e=>({configuredDestinations:e.configuredDestinations.filter(e=>_c(e,t))})),setConfiguredDestinationsUpdateOnly:t=>e({configuredDestinationsUpdateOnly:t}),addConfiguredDestinationUpdateOnly:t=>e(e=>{const o=[...e.configuredDestinationsUpdateOnly,t].map(e=>[e.id,e]);return{configuredDestinationsUpdateOnly:Array.from(new Map(o).values())}}),removeConfiguredDestinationUpdateOnly:t=>e(e=>({configuredDestinationsUpdateOnly:e.configuredDestinationsUpdateOnly.filter(e=>_c(e,t))})),clearStore:()=>e(()=>({...Ac}))})),Dc=e=>{function t(){return void 0===e?{}:_n(e)}const[o,n]=Ft(t()),[r,i]=Ft({}),[a,s]=Ft(t()),l=Bt((e,t)=>{const o={};if(!t||"object"!=typeof t)return e?{...e}:o;for(const[n,r]of Object.entries(e)){const e=n;if(Array.isArray(r)){const n=t[e];Array.isArray(n)&&r.length===n.length&&r.every((e,t)=>"object"==typeof e&&null!==e?0===Object.keys(l(e,n[t])).length:e===n[t])||(o[e]=t[e])}else if("object"==typeof r&&null!==r)if(null==t[e]||"object"!=typeof t[e])o[e]=t[e];else{const n=l(r,t[e]);Object.keys(n).length>0&&(o[e]=n)}else r!==t[e]&&(o[e]=t[e])}for(const n of Object.keys(t))n in e||(o[n]=t[n]);return o},[]),c=(e,t)=>0===Object.keys(l(e,t)).length,d=Ht(()=>!c(a,o),[a,o]);zt(()=>{const r=t();void 0!==e&&"{}"===JSON.stringify(o)&&"{}"!==JSON.stringify(r)&&(n(r),s(r))},[e,o]);const u=Bt((e,t)=>Rn("formData"===e?o:r,t.toString()),[o,r]);return{formData:o,formErrors:r,getFormDiff:l,areFormValuesEqual:c,isFormDirty:d,handleFormChange:(e,t,o)=>{if(e){const o=e.toString(),r=o.split(".");1===r.length?n(o=>({...o,[e]:t})):n(e=>{const o=_n(e);let n=o;for(let e=0;e<r.length-1;e++){const t=r[e];n[t]&&"object"==typeof n[t]||(n[t]={}),n=n[t]}return n[r[r.length-1]]=t,o}),i(e=>{const t=o,n=r[r.length-1],i=void 0!==e[t],a=n!==t&&void 0!==e[n];if(!i&&!a)return e;const s={...e};return i&&delete s[t],a&&delete s[n],s})}else o&&n({...o})},handleErrorChange:(e,t,o)=>{if(e){const o=e.toString().split(".");1===o.length?i(o=>({...o,[e]:t})):i(e=>{const n=_n(e);let r=n;for(let e=0;e<o.length-1;e++){const t=o[e];r[t]&&"object"==typeof r[t]||(r[t]={}),r=r[t]}return r[o[o.length-1]]=t,n})}else o&&i({...o})},resetFormData:e=>{const o=e||t();n(o),s(o),i({})},getNestedValue:u}},kc={type:"",name:"",notes:"",signals:[],disabled:!1,fields:{clusterAttributes:null,overwriteExistingValues:null,renames:null,attributeNamesToDelete:null,piiCategories:null,urlTemplatizationRulesGroups:null,extractAttribute:null}},Lc=()=>{const{addNotification:e}=xc(),{formData:t,formErrors:o,handleFormChange:n,handleErrorChange:r,resetFormData:i}=Dc(kc);return{formData:t,formErrors:o,handleFormChange:n,resetFormData:i,validateForm:o=>{const n={};let i=!0;if(Object.entries(t).forEach(([e,t])=>{switch(e){case"type":case"signals":pi(t)&&(n[e]=Sn.FIELD_IS_REQUIRED)}}),t.type===no.URLTemplatization){const e=t.fields?.urlTemplatizationRulesGroups;if(e)for(const t of e)if(t.templatizationRules?.some(e=>!e.template?.trim())){n.fields=Sn.FIELD_IS_REQUIRED;break}}return i=!Object.values(n).length,!i&&o?.withAlert&&e({type:wo.Warning,title:o.alertTitle,message:Sn.REQUIRED_FIELDS,hideFromHistory:!0}),r(void 0,void 0,n),i},loadFormWithDrawerItem:({type:e,signals:t,name:o,notes:r,disabled:i,fields:a})=>{const s={..._n(kc),type:e,signals:t,name:o,notes:r,disabled:i};Object.entries(a).forEach(([e,t])=>{if(t)switch(e){case ro.LabelsAttributes:case ro.AnnotationsAttributes:s.fields||(s.fields={}),s.fields[e]=(o=t)&&Array.isArray(o)?o.map(e=>!e.fromSources?.length&&e.from?{...e,fromSources:[e.from]}:e):o;break;case ro.CollectContainerAttributes:case ro.CollectReplicaSetAttributes:case ro.CollectWorkloadId:case ro.CollectClusterId:case ro.ClusterAttributes:case ro.OverwriteExistingValues:case ro.AttributeNamesToDelete:case ro.Renames:case ro.PiiCategories:case ro.ExtractAttribute:case ro.UrlTemplatizationRulesGroups:s.fields||(s.fields={}),s.fields[e]=t}var o}),n(void 0,void 0,s)}}},Pc=e=>{zt(()=>{if(e){const e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}},[e])},Uc=()=>{const e=Wt(null),[t,o]=Ft(0),[n,r]=Ft(0);return zt(()=>{const t=()=>{if(e.current){const{width:t,height:n}=e.current.getBoundingClientRect();o(t),r(n)}};return t(),window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[]),{containerRef:e,containerWidth:t,containerHeight:n}};var Mc;(e=>{e[e.XS=16]="XS",e[e.S=18]="S",e[e.M=24]="M",e[e.L=32]="L"})(Mc||(Mc={}));const Fc=n.div`
|
|
196
196
|
width: ${({$size:e})=>1.5*e}px;
|
|
197
197
|
height: ${({$size:e})=>1.5*e}px;
|
|
198
198
|
display: flex;
|
|
@@ -1593,4 +1593,4 @@ import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import n,{css as
|
|
|
1593
1593
|
padding: 16px 24px;
|
|
1594
1594
|
width: 100%;
|
|
1595
1595
|
background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
|
|
1596
|
-
`,Ug=({visual:o,title:n,description:r,isOpen:i,onClose:a,denyButton:s,approveButton:l,children:c,...d})=>e(Ph,{isOpen:i,onClose:a,...d,children:t(kg,{children:[t(Lg,{children:[o&&e(o,{}),e(mn,{size:dn.M,weight:500,color:un.Primary,children:n}),e(zr,{$alignItems:"center",$gap:4,children:r.split("\n").map(t=>e(mn,{size:dn.XS,weight:400,color:un.Secondary,children:t},t))}),c]}),(s||l)&&t(Pg,{children:[s&&e(vd,{"data-id":"deny",...s}),l&&e(vd,{"data-id":"approve",...l})]})]})});export{
|
|
1596
|
+
`,Ug=({visual:o,title:n,description:r,isOpen:i,onClose:a,denyButton:s,approveButton:l,children:c,...d})=>e(Ph,{isOpen:i,onClose:a,...d,children:t(kg,{children:[t(Lg,{children:[o&&e(o,{}),e(mn,{size:dn.M,weight:500,color:un.Primary,children:n}),e(zr,{$alignItems:"center",$gap:4,children:r.split("\n").map(t=>e(mn,{size:dn.XS,weight:400,color:un.Secondary,children:t},t))}),c]}),(s||l)&&t(Pg,{children:[s&&e(vd,{"data-id":"deny",...s}),l&&e(vd,{"data-id":"approve",...l})]})]})});export{Jd as $,hu as A,vd as B,Zd as C,th as D,ts as E,zr as F,as as G,Tg as H,Ih as I,ss as J,ls as K,os as L,vo as M,Kp as N,Xn as O,fo as P,Tu as Q,fu as R,wo as S,hd as T,Ua as U,Nr as V,Ug as W,Ha as X,zd as Y,Uu as Z,Qa as _,gu as a,Gd as a$,cs as a0,ds as a1,Pa as a2,An as a3,Tp as a4,xh as a5,qi as a6,_a as a7,Lo as a8,Mo as a9,wa as aA,rs as aB,hs as aC,us as aD,gs as aE,ms as aF,Ka as aG,ma as aH,ba as aI,va as aJ,$a as aK,xa as aL,Ca as aM,ka as aN,ia as aO,aa as aP,pa as aQ,Ya as aR,Ja as aS,es as aT,pc as aU,sa as aV,La as aW,_n as aX,hc as aY,Yh as aZ,Br as a_,Xo as aa,Vo as ab,Uo as ac,Fo as ad,Po as ae,ln as af,za as ag,ya as ah,Fa as ai,fa as aj,ja as ak,Aa as al,Ma as am,Wa as an,Za as ao,Ra as ap,yh as aq,qa as ar,Oa as as,ha as at,Na as au,Ta as av,pu as aw,ga as ax,Ia as ay,ps as az,mo as b,cn as b$,qr as b0,Wd as b1,Bc as b2,Hn as b3,pp as b4,xc as b5,Sn as b6,mr as b7,Eo as b8,So as b9,gh as bA,yu as bB,kd as bC,fn as bD,Oi as bE,Fi as bF,zi as bG,md as bH,Hi as bI,Bi as bJ,Os as bK,Da as bL,Ba as bM,Ns as bN,Va as bO,Ts as bP,da as bQ,ua as bR,Ea as bS,Td as bT,on as bU,Mr as bV,tg as bW,zc as bX,Mc as bY,an as bZ,Qn as b_,yc as ba,Nc as bb,Rc as bc,wc as bd,rr as be,nn as bf,er as bg,ui as bh,ji as bi,di as bj,Dc as bk,Zo as bl,ro as bm,no as bn,pi as bo,hi as bp,rn as bq,$i as br,jo as bs,Si as bt,Wi as bu,Ro as bv,io as bw,Xi as bx,uo as by,Vi as bz,Gi as c,gi as c$,vn as c0,bn as c1,po as c2,Vh as c3,xp as c4,Qo as c5,Ei as c6,Pn as c7,ai as c8,sn as c9,Ld as cA,$g as cB,ng as cC,_h as cD,Sa as cE,Qi as cF,Yn as cG,Ki as cH,ea as cI,Ji as cJ,Zi as cK,cc as cL,uc as cM,dc as cN,Ds as cO,_s as cP,As as cQ,Rs as cR,Fs as cS,Ms as cT,Hs as cU,Bs as cV,Ps as cW,Ls as cX,Yi as cY,Ss as cZ,Vc as c_,ad as ca,qc as cb,Tn as cc,ko as cd,vp as ce,wn as cf,Ri as cg,Vn as ch,Cg as ci,np as cj,Sc as ck,ri as cl,ni as cm,qn as cn,uh as co,Ec as cp,gr as cq,zn as cr,Zr as cs,fr as ct,Qr as cu,Yc as cv,Pi as cw,ki as cx,bi as cy,Kn as cz,Kd as d,Ll as d$,nu as d0,ou as d1,Ph as d2,bc as d3,lc as d4,Gs as d5,rl as d6,il as d7,al as d8,sl as d9,bl as dA,fl as dB,yl as dC,gl as dD,ml as dE,hl as dF,$l as dG,Cl as dH,El as dI,Sl as dJ,vl as dK,wl as dL,Tl as dM,xl as dN,Vs as dO,Vl as dP,Kl as dQ,Yl as dR,Xl as dS,ql as dT,Ql as dU,Zl as dV,ec as dW,tc as dX,Jl as dY,jl as dZ,Gl as d_,cl as da,ll as db,dl as dc,Lr as dd,oc as de,nc as df,rc as dg,ic as dh,ac as di,sc as dj,Xs as dk,Ks as dl,Ys as dm,Js as dn,Qs as dp,qs as dq,el as dr,Zs as ds,ol as dt,tl as du,nl as dv,Ws as dw,js as dx,ul as dy,pl as dz,mn as e,yo as e$,Bl as e0,Hl as e1,Wl as e2,Ul as e3,Fl as e4,Ml as e5,Ol as e6,Nl as e7,Il as e8,Al as e9,yr as eA,zo as eB,Iu as eC,Qu as eD,Ru as eE,Ur as eF,is as eG,na as eH,ta as eI,oa as eJ,ra as eK,Is as eL,Es as eM,bs as eN,vs as eO,ys as eP,fs as eQ,xs as eR,ws as eS,Cs as eT,$s as eU,Qc as eV,Io as eW,lo as eX,Oo as eY,Jo as eZ,_o as e_,_l as ea,Rl as eb,Dl as ec,kl as ed,Pl as ee,zl as ef,ur as eg,Pr as eh,og as ei,Cc as ej,Mn as ek,En as el,Di as em,ed as en,vc as eo,Ic as ep,or as eq,Wn as er,nr as es,tr as et,Zn as eu,Uc as ev,Un as ew,Ln as ex,kn as ey,yn as ez,un as f,tn as f$,bo as f0,To as f1,co as f2,qo as f3,ho as f4,so as f5,Do as f6,$o as f7,Wo as f8,Ho as f9,ei as fA,si as fB,li as fC,ci as fD,mi as fE,fi as fF,vi as fG,xi as fH,wi as fI,Ti as fJ,Ni as fK,Ii as fL,Dn as fM,Ai as fN,_i as fO,Ui as fP,ns as fQ,zs as fR,Us as fS,ks as fT,Ga as fU,Xa as fV,ca as fW,la as fX,Li as fY,gc as fZ,en as f_,Bo as fa,Ao as fb,Yo as fc,Ko as fd,Go as fe,go as ff,ao as fg,No as fh,Ar as fi,Ir as fj,Dr as fk,On as fl,Nn as fm,Ci as fn,Fn as fo,Bn as fp,Gn as fq,Rn as fr,Jn as fs,xn as ft,ar as fu,sr as fv,lr as fw,cr as fx,dr as fy,pr as fz,dn as g,Mi as g0,mc as g1,Kc as g2,Lc as g3,Pc as g4,Hc as g5,jc as g6,Xc as g7,Jc as g8,Zc as g9,od as ga,wd as gb,Dd as gc,Od as gd,xd as ge,Bu as gf,Hu as gg,tu as gh,Ag as gi,rh as gj,Wu as gk,sh as gl,ch as gm,jr as gn,Hh as go,Wr as gp,vh as gq,xu as gr,Gr as gs,Xr as gt,Vr as gu,ap as gv,Lp as gw,Op as gx,Hr as gy,hn as gz,Fr as h,yd as i,fd as j,Yd as k,Cn as l,$n as m,Co as n,Dp as o,Ip as p,Np as q,Dg as r,oh as s,oo as t,Ig as u,ii as v,hh as w,Pu as x,xo as y,Cu as z};
|
package/lib/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{Z as Autocomplete,bH as Badge,B as Button,i as ButtonSize,gf as ButtonTab,gg as ButtonTabList,j as ButtonVariants,a_ as CenterThis,C as Checkbox,gh as CheckboxList,$ as CheckboxSize,cj as CliCommand,b4 as Code,ce as Condition,c4 as Conditions,gi as DEFAULT_TIME_UNITS,z as DataCard,a4 as Divider,D as Drawer,aw as DropData,d1 as DropDataAlignX,d0 as DropDataAlignY,s as DropDown,gj as ErrorBoundary,k as FieldMessage,d as FieldTitle,F as FlexColumn,h as FlexRow,eD as GaugeChart,gk as GaugeChartVariant,gl as Header,gm as HoverActions,bX as IconButton,bY as IconButtonSize,co as IconGroup,x as Input,a5 as InputCardTable,w as InputList,I as InputTable,cD as Island,b0 as Loader,d2 as Modal,gn as ModalBody,go as Navbar,a$ as NoData,N as Note,gp as Overlay,bV as Padding,eh as PageContent,aq as Radio,c3 as RadioCard,gq as RadioGroup,bA as RadioSize,aZ as ScrollY,b1 as Search,Q as SectionCard,gr as SectionCardSize,Y as Segment,bC as SegmentSize,cA as SegmentVariant,bW as SkeletonLoader,eC as StatusCard,ei as Stepper,cB as Table,gs as TableContainer,gt as TableTitleWrap,cC as TableVariant,gu as TableWrap,H as Tag,ci as TagVariants,u as TextArea,eE as TextCard,r as TimeInput,o as Toggle,gv as ToggleCodeComponent,p as ToggleLabelAlign,gw as ToggleList,q as ToggleSize,gx as ToggleVariant,T as Tooltip,bB as TruncatableTypography,e as Typography,f as TypographyColor,g as TypographySize,b$ as TypographyVariants,eF as UpgradeRequiredWrapper,gy as VerticalScroll,W as WarningModal,gz as resolveTypographyColor}from"./chunks/ui-components-dsTdscIC.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
|
package/lib/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{bl as ACTION_OPTIONS,fP as ALL_LANGUAGES_WILDCARD,fQ as ALL_SOURCES,cH as BTN_CANCEL,cO as BTN_CONTINUE_EDITING,eI as BTN_CREATE_FIRST_RULE,cF as BTN_CREATE_RULE,cK as BTN_DELETE_RULE,a6 as BTN_EDIT_AUTO_RULE,cJ as BTN_EDIT_RULE,cY as BTN_SAVE,cI as BTN_SAVE_RULE,l as BUTTON_TEXTS,cL as CATEGORY_DESCRIPTIONS,aU as CATEGORY_LABELS,cN as CATEGORY_TITLES,fR as CREATE_COST_REDUCTION_AUTO_RULE_DRAWER_TITLE,fS as CREATE_HIGHLY_RELEVANT_AUTO_RULE_DRAWER_TITLE,fT as CREATE_NOISY_AUTO_RULE_DRAWER_TITLE,c1 as DEFAULT_CLUSTER_ID,c0 as DEFAULT_CLUSTER_NAME,ez as DEFAULT_DATA_STREAM_NAME,ak as DESC_DURATION,fU as DESC_ERRORS,an as DESC_OPERATION,fV as DESC_PERCENTAGE_HIGHLY_RELEVANT,bO as DESC_PERCENTAGE_NOISY,aV as DESC_RULE_TYPE,X as DESC_SOURCE_SCOPE,bZ as DESTINATION_CATEGORIES,em as DISPLAY_LANGUAGES,m as DISPLAY_TITLES,bD as DOCS_BASE_URL,bq as DestinationCategoryTypes,cU as EDIT_COST_REDUCTION_AUTO_RULE_DRAWER_SUBTITLE,cV as EDIT_COST_REDUCTION_AUTO_RULE_DRAWER_TITLE,cS as EDIT_HIGHLY_RELEVANT_AUTO_RULE_DRAWER_SUBTITLE,cT as EDIT_HIGHLY_RELEVANT_AUTO_RULE_DRAWER_TITLE,cW as EDIT_NOISY_AUTO_RULE_DRAWER_SUBTITLE,cX as EDIT_NOISY_AUTO_RULE_DRAWER_TITLE,cM as EDIT_TITLES,aB as EMPTY_VALUE,bz as EXTRACTION_FORMAT_COPY,bx as EXTRACT_ATTRIBUTE_FORM,eG as FILTER_TYPE_ALL,b6 as FORM_ALERTS,bu as INSTRUMENTATION_RULE_OPTIONS,al as LABEL_CUSTOM_DURATION,bS as LABEL_CUSTOM_PERCENTAGE,bR as LABEL_DISABLED,cE as LABEL_DISABLED_RULE,aL as LABEL_DROP_ALL,bL as LABEL_DROP_AT_MOST,bQ as LABEL_ENABLED,at as LABEL_HTTP_ROUTE,av as LABEL_HTTP_ROUTE_PREFIX,ay as LABEL_KAFKA_TOPIC,aM as LABEL_KEEP_ALL,aI as LABEL_KEEP_AT_LEAST,aJ as LABEL_KEEP_AT_MOST,aH as LABEL_KEEP_PERCENTAGE,aj as LABEL_KEEP_TRACES_DURATION,ah as LABEL_KEEP_TRACES_ERRORS,ax as LABEL_METHOD,aQ as LABEL_NOTE,a7 as LABEL_NO_PREVIEW,aA as LABEL_OPERATION_TYPE,fW as LABEL_RULE_DISABLED,fX as LABEL_RULE_ENABLED,aO as LABEL_RULE_NAME,aP as LABEL_RULE_TYPE,aK as LABEL_SAMPLE,ap as LABEL_SERVER_ADDRESS,as as LABEL_TEMPLATED_PATH,au as LABEL_TEMPLATED_PATH_PREFIX,cx as LANGUAGE_OPTIONS,aY as MONITORS_OPTIONS,E as NOTE_ENTIRE_CLUSTER,L as NOTE_SOURCE_SCOPE_LOGIC,fY as OPENTELEMETRY_EBPF_DISTRO_OPTION,aD as OPERATION_ALL,aC as OPERATION_HTTP_CLIENT,az as OPERATION_HTTP_SERVER,aE as OPERATION_KAFKA_CONSUMER,aF as OPERATION_KAFKA_PRODUCER,cw as OTEL_DISTRO_NAME_OPTIONS,aG as PERCENTAGE_SECTION_DESCRIPTIONS,aS as PLACEHOLDER_NOTE,ar as PLACEHOLDER_ROUTE,aR as PLACEHOLDER_RULE_NAME,_ as PLACEHOLDER_SEARCH_SOURCE,ao as PLACEHOLDER_SERVER_ADDRESS,cg as PROCESS_ATTRIBUTE_NAMES,c as REGEX_TESTER_DRAWER,bP as SAMPLING_AUTO_RULE_TITLE,eO as SAMPLING_BTN_CREATE_RULE,eM as SAMPLING_BTN_DOCS,eN as SAMPLING_BTN_REFRESH,bN as SAMPLING_COST_REDUCTION_AUTO_RULE_TITLE,cP as SAMPLING_DEFAULT_CONFIRM_DESCRIPTION,cR as SAMPLING_DEFAULT_CONFIRM_PREVIEW_LABEL,cQ as SAMPLING_DEFAULT_CONFIRM_TITLE,eR as SAMPLING_DELETE_MODAL_APPROVE,eS as SAMPLING_DELETE_MODAL_CANCEL,eT as SAMPLING_DELETE_MODAL_DESCRIPTION,eU as SAMPLING_DELETE_MODAL_TITLE,cZ as SAMPLING_DRAWER_WIDTH,eL as SAMPLING_DUPLICATE_RULE_WARNING,bK as SAMPLING_HIGHLY_RELEVANT_AUTO_RULE_TITLE,dP as SAMPLING_ONBOARDING_ADVANCED_LEFT_BULLET_1,dQ as SAMPLING_ONBOARDING_ADVANCED_LEFT_BULLET_2,dR as SAMPLING_ONBOARDING_ADVANCED_LEFT_BULLET_3,dS as SAMPLING_ONBOARDING_ADVANCED_LEFT_TITLE,dT as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_1,dU as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_2,dV as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_3,dW as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_4,dX as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_5,dY as SAMPLING_ONBOARDING_ADVANCED_RIGHT_TITLE,d_ as SAMPLING_ONBOARDING_ADVANCED_SUBTITLE,dZ as SAMPLING_ONBOARDING_ADVANCED_TITLE,ef as SAMPLING_ONBOARDING_AMBIENT_LABEL,dk as SAMPLING_ONBOARDING_BTN_GO_TO,d5 as SAMPLING_ONBOARDING_BTN_NEXT,dO as SAMPLING_ONBOARDING_BTN_READ_MORE,dw as SAMPLING_ONBOARDING_BTN_SKIP,dx as SAMPLING_ONBOARDING_BTN_START,d$ as SAMPLING_ONBOARDING_COMMON_BANNER,ee as SAMPLING_ONBOARDING_COMMON_RULES_SECTION,e2 as SAMPLING_ONBOARDING_DROP_DESCRIPTION,e1 as SAMPLING_ONBOARDING_DROP_SUBTITLE,e0 as SAMPLING_ONBOARDING_DROP_TITLE,e5 as SAMPLING_ONBOARDING_ERROR_PRESET_NAME,e4 as SAMPLING_ONBOARDING_ERROR_PRESET_TOGGLE_LABEL,e8 as SAMPLING_ONBOARDING_KEEP_DESCRIPTION,e7 as SAMPLING_ONBOARDING_KEEP_SUBTITLE,e6 as SAMPLING_ONBOARDING_KEEP_TITLE,e9 as SAMPLING_ONBOARDING_KEEP_USE_CASE_1,ea as SAMPLING_ONBOARDING_KEEP_USE_CASE_2,eb as SAMPLING_ONBOARDING_KEEP_USE_CASE_3,ec as SAMPLING_ONBOARDING_KEEP_USE_CASE_4,ed as SAMPLING_ONBOARDING_KEEP_USE_CASE_5,dc as SAMPLING_ONBOARDING_NOISY_BANNER,d8 as SAMPLING_ONBOARDING_NOISY_DESCRIPTION,db as SAMPLING_ONBOARDING_NOISY_PRESET_NAME,d9 as SAMPLING_ONBOARDING_NOISY_PRESET_SECTION,da as SAMPLING_ONBOARDING_NOISY_PRESET_TOGGLE_LABEL,d7 as SAMPLING_ONBOARDING_NOISY_SUBTITLE,d6 as SAMPLING_ONBOARDING_NOISY_TITLE,e3 as SAMPLING_ONBOARDING_PRESET_RULES_SECTION,d4 as SAMPLING_ONBOARDING_RECOMMENDED_BADGE,dL as SAMPLING_ONBOARDING_STRATEGY_ADVANCED_BADGE,dM as SAMPLING_ONBOARDING_STRATEGY_ADVANCED_DESC,dN as SAMPLING_ONBOARDING_STRATEGY_ADVANCED_NAME,dI as SAMPLING_ONBOARDING_STRATEGY_DROP_BADGE,dG as SAMPLING_ONBOARDING_STRATEGY_DROP_BULLET_1,dH as SAMPLING_ONBOARDING_STRATEGY_DROP_BULLET_2,dJ as SAMPLING_ONBOARDING_STRATEGY_DROP_DESC,dK as SAMPLING_ONBOARDING_STRATEGY_DROP_NAME,dD as SAMPLING_ONBOARDING_STRATEGY_KEEP_BADGE,dB as SAMPLING_ONBOARDING_STRATEGY_KEEP_BULLET_1,dC as SAMPLING_ONBOARDING_STRATEGY_KEEP_BULLET_2,dE as SAMPLING_ONBOARDING_STRATEGY_KEEP_DESC,dF as SAMPLING_ONBOARDING_STRATEGY_KEEP_NAME,dA as SAMPLING_ONBOARDING_STRATEGY_KEEP_WARNING,dz as SAMPLING_ONBOARDING_STRATEGY_SUBTITLE,dy as SAMPLING_ONBOARDING_STRATEGY_TITLE,dh as SAMPLING_ONBOARDING_SUCCESS_BULLET_1,di as SAMPLING_ONBOARDING_SUCCESS_BULLET_2,dj as SAMPLING_ONBOARDING_SUCCESS_BULLET_3,dg as SAMPLING_ONBOARDING_SUCCESS_INTRO,df as SAMPLING_ONBOARDING_SUCCESS_SUBTITLE,de as SAMPLING_ONBOARDING_SUCCESS_TITLE,dv as SAMPLING_ONBOARDING_WELCOME_BANNER,dn as SAMPLING_ONBOARDING_WELCOME_INTRO,dp as SAMPLING_ONBOARDING_WELCOME_STAGE_1_DESC,dq as SAMPLING_ONBOARDING_WELCOME_STAGE_1_TITLE,dr as SAMPLING_ONBOARDING_WELCOME_STAGE_2_DESC,ds as SAMPLING_ONBOARDING_WELCOME_STAGE_2_TITLE,dt as SAMPLING_ONBOARDING_WELCOME_STAGE_3_DESC,du as SAMPLING_ONBOARDING_WELCOME_STAGE_3_TITLE,dm as SAMPLING_ONBOARDING_WELCOME_SUBTITLE,dl as SAMPLING_ONBOARDING_WELCOME_TITLE,eP as SAMPLING_PAGE_DESCRIPTION,eQ as SAMPLING_PAGE_TITLE,a1 as SCOPE_AND_LABEL,a0 as SCOPE_GROUP_ANY_OF_HINT,K as SCOPE_GROUP_LANGUAGES_TITLE,J as SCOPE_GROUP_NAMESPACES_TITLE,G as SCOPE_GROUP_SOURCES_TITLE,ai as SECTION_DURATION,ag as SECTION_ERRORS,bM as SECTION_KEEP_PERCENTAGE,am as SECTION_OPERATION,aW as SECTION_SAMPLING_PREVIEW,a2 as SECTION_SOURCE_SCOPE,el as STORAGE_KEYS,eH as TITLE_NO_RESULTS,eJ as TITLE_NO_RULES,fZ as TOKEN_ABOUT_TO_EXPIRE,aT as TOOLTIP_NOTE,U as UNKNOWN_SOURCE_LABEL,aN as UNNAMED_RULE,eK as getNoResultsSubTitle,bU as getSupportedActionOptions,bI as getSupportedLanguageIcon,bJ as getSupportedLanguageLabel,f_ as isActionSupportedOnPlatform,f$ as isActionSupportedOnVersion,bf as mapActionTypesToOptions,bi as mapRuleTypesToOptions,bF as normalizeSupportedLanguagesForDisplay,g0 as supportsAllLanguages,bG as toScopeSupportedLanguages}from"./chunks/ui-components-dsTdscIC.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
|
|
@@ -6,7 +6,7 @@ import { type Action, type ActionOption } from '../../../types';
|
|
|
6
6
|
export declare const buildDataCard: (action: Action, option: ActionOption) => DataCardProps["items"];
|
|
7
7
|
/**
|
|
8
8
|
* Build the items shown in the configuration `DataCard` (the action's type-specific fields).
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Prefers YAML catalog fields when present; falls back to the legacy per-type mapping for
|
|
10
|
+
* backends without GET_ACTION_TYPES.
|
|
11
11
|
*/
|
|
12
|
-
export declare const buildFieldsDataCard: (action: Action) => DataCardProps["items"];
|
|
12
|
+
export declare const buildFieldsDataCard: (action: Action, option?: ActionOption | null) => DataCardProps["items"];
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { type FC } from 'react';
|
|
2
|
+
import type { AutocompleteOption } from '../../../../components';
|
|
2
3
|
import { ActionType, type ActionFormData, type ActionYamlProperties, type CustomFieldProps, type SignalType } from '../../../../types';
|
|
3
4
|
interface CustomFieldsProps extends CustomFieldProps<ActionFormData['fields']> {
|
|
4
5
|
actionType?: ActionType;
|
|
5
6
|
dynamicFields?: ActionYamlProperties[];
|
|
6
7
|
signals?: SignalType[];
|
|
8
|
+
sourceOptions?: AutocompleteOption[];
|
|
9
|
+
namespaceOptions?: AutocompleteOption[];
|
|
7
10
|
}
|
|
8
11
|
declare const CustomFields: FC<CustomFieldsProps>;
|
|
9
12
|
export { CustomFields, type CustomFieldsProps };
|