@odigos/ui-kit 0.0.257 → 0.0.258
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 +16 -0
- package/lib/chunks/{connections-scope-RiHZnCRk.js → connections-scope-DgpFs9S1.js} +1 -1
- package/lib/chunks/{helpers-CUmUiA_l.js → helpers-BlFl20R2.js} +2 -2
- package/lib/chunks/index-BVL5-zQa.js +155 -0
- package/lib/chunks/{source-instrument-form-context-8HLrHGI9.js → source-instrument-form-context-o2ynNRPg.js} +1 -1
- package/lib/chunks/ui-components-BmIux5o5.js +1692 -0
- package/lib/chunks/{use-odigos-api-DnIoW4_W.js → use-odigos-api-hslZLdix.js} +2 -2
- package/lib/components/_v2/autocomplete/index.d.ts +4 -0
- package/lib/components/_v2/badge/index.d.ts +2 -2
- package/lib/components/_v2/cards/status-card/index.d.ts +2 -2
- package/lib/components/_v2/condition/index.d.ts +2 -2
- package/lib/components/_v2/drop-data/index.d.ts +2 -0
- package/lib/components/_v2/table/index.d.ts +4 -0
- package/lib/components/_v2/table/styled.d.ts +1 -0
- package/lib/components/_v2/table/table-rows/index.d.ts +6 -0
- package/lib/components/_v2/table/types.d.ts +6 -0
- package/lib/components/scroll-y/index.d.ts +4 -0
- package/lib/components/v2.js +1 -1
- package/lib/components.js +1 -1
- package/lib/constants.js +1 -1
- package/lib/containers/_v2/_drawers/edit-rule-drawer/helpers.d.ts +1 -1
- package/lib/containers/_v2/_drawers/edit-source-drawer/profiling/flame-graph-canvas.d.ts +6 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/profiling/flamebearer.d.ts +3 -1
- package/lib/containers/_v2/_drawers/edit-source-drawer/profiling/symbol-table/index.d.ts +34 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/profiling/symbol-table/modify-rules-modal.d.ts +10 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/profiling/symbol-table/symbol-instrumentation.d.ts +86 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/profiling/symbol-table/use-symbol-instrumentation.d.ts +69 -0
- package/lib/containers/service-map/react-flow/columns/active-node-info.d.ts +2 -0
- package/lib/containers/service-map/react-flow/columns/column-root.d.ts +4 -0
- package/lib/containers/service-map/react-flow/{search-and-select-nodes.d.ts → columns/search-and-select-nodes.d.ts} +0 -1
- package/lib/containers/service-map/service-map-context.d.ts +3 -3
- package/lib/containers/v2.js +158 -143
- package/lib/containers.js +30 -12
- package/lib/contexts/odigos-api.js +1 -1
- package/lib/contexts.js +1 -1
- package/lib/functions/get-health-badge-label/index.d.ts +2 -2
- package/lib/functions/get-status-color/index.d.ts +2 -2
- package/lib/functions/get-status-from-pod-status/index.d.ts +2 -2
- package/lib/functions/get-status-icon/index.d.ts +2 -2
- package/lib/functions/get-status-type-from-odigos-health/index.d.ts +2 -2
- package/lib/functions/map-desired-status-to-condition-status/index.d.ts +2 -2
- package/lib/functions.js +1 -1
- package/lib/hooks.js +1 -1
- package/lib/snippets/_v2/sampling-rule-form-sections/preset-with-custom-input.d.ts +1 -1
- package/lib/snippets/v2.js +1 -1
- package/lib/snippets.js +1 -1
- package/lib/store/useProgressStore.d.ts +2 -2
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types/common/index.d.ts +5 -10
- package/lib/types/sampling.d.ts +2 -0
- package/lib/types.js +1 -1
- package/lib/visuals.js +1 -1
- package/package.json +1 -1
- package/lib/chunks/index-hiRPXsEi.js +0 -155
- package/lib/chunks/ui-components-B1TCLO_N.js +0 -1666
- package/lib/containers/_v2/_drawers/edit-source-drawer/profiling/symbol-table.d.ts +0 -21
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.258](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.257...ui-kit-v0.0.258) (2026-06-28)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **profiling:** implement custom instrumentation rules ([#1026](https://github.com/odigos-io/ui-kit/issues/1026)) ([54a47b2](https://github.com/odigos-io/ui-kit/commit/54a47b2bf8cd19610f6ce65f304ecbeafd6eace5))
|
|
9
|
+
* **profiling:** manage one "Profiling Symbols" rule + flame-graph → table navigation for easier selection ([#1036](https://github.com/odigos-io/ui-kit/issues/1036)) ([dc68668](https://github.com/odigos-io/ui-kit/commit/dc68668bf0fd5120dc5867201167d2bab1fc8da7))
|
|
10
|
+
* **refactor:** remove `OtherStatusType` and `OtherStatus` in favor of `StatusType` enum ([#1028](https://github.com/odigos-io/ui-kit/issues/1028)) ([dc5b1ae](https://github.com/odigos-io/ui-kit/commit/dc5b1ae57e451d32ca6698bbcfc2145fcada26d6))
|
|
11
|
+
* **service-map:** add inbound/outbound info for active node ([#1025](https://github.com/odigos-io/ui-kit/issues/1025)) ([6fb1d95](https://github.com/odigos-io/ui-kit/commit/6fb1d95aadec8d852d7714a814735a7622ebef54))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **sampling:** place custom percentage input next to the Custom preset ([#1032](https://github.com/odigos-io/ui-kit/issues/1032)) ([b89556e](https://github.com/odigos-io/ui-kit/commit/b89556e10eb859ee41b91c8936bb01ea875af425))
|
|
17
|
+
* **sampling:** show server address in noisy rule preview without slash prefix ([#1030](https://github.com/odigos-io/ui-kit/issues/1030)) ([09979a2](https://github.com/odigos-io/ui-kit/commit/09979a232bd71e869d50fb44ad3875a5039018ce))
|
|
18
|
+
|
|
3
19
|
## [0.0.257](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.256...ui-kit-v0.0.257) (2026-06-23)
|
|
4
20
|
|
|
5
21
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import{useMemo as n}from"react";import{e as t,_ as e}from"./use-odigos-api-
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{useMemo as n}from"react";import{e as t,_ as e}from"./use-odigos-api-hslZLdix.js";const r=({connectionIds:r,children:i})=>{const s=t(),a=n(()=>({operations:s.operations,context:{...s.context,connectionIds:r},apolloConfig:s.apolloConfig}),[s.operations,s.context,s.apolloConfig,r.join(",")]);return o(e.Provider,{value:a,children:i})};export{r as O};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useMemo as n,useContext as o,createContext as a,Fragment as s}from"react";import{t as i,T as u,P as l,u as c,a as p,b as d,c as f}from"./ui-components-
|
|
1
|
+
import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useMemo as n,useContext as o,createContext as a,Fragment as s}from"react";import{t as i,T as u,P as l,u as c,a as p,b as d,c as f}from"./ui-components-BmIux5o5.js";import h from"styled-components";const m=a({platformType:l.K8s,tier:u.Community,version:"v0.0.0"}),v=({children:t,platformType:r,tier:o,version:a})=>{const s=n(()=>({platformType:r,tier:o,version:a}),[r,o,a]);return e(m.Provider,{value:s,children:t})},g=(e,t)=>!t||i(e)>=i(t),y=e=>{const t=o(m),r=g(t.version,e),n=t.platformType===l.Vm;return{...t,isVersionSupported:r,isVm:n,isEnterprise:t.tier===u.Onprem}};function x(){return{sources:[],namespaces:[],languages:[]}}function k(e){return!e||!e.sources?.length&&!e.namespaces?.length&&!e.languages?.length}function S(e){return e?{sources:e.sources?[...e.sources]:[],namespaces:e.namespaces?[...e.namespaces]:[],languages:e.languages?[...e.languages]:[]}:{sources:[],namespaces:[],languages:[]}}function A(e){return null==e||0===e}function T(e){return{name:"",notes:"",disabled:!1,ruleType:"Relevance",sourceScopes:{sources:[],namespaces:[],languages:[]},operationType:"all",routeType:"route",route:"",serverAddress:"",method:"",kafkaTopic:"",durationPreset:"500",customDurationMs:"",keepErrors:!1,percentageMode:"costReduction"===e?"sample":"all",percentagePreset:"0",customPercentage:""}}function R(e){return k(e.sourceScopes)?null:e.sourceScopes}function P(e){return R(e)}function b(e){if("all"===e.percentageMode)return null;if("custom"===e.percentagePreset){const t=parseFloat(e.customPercentage);return isNaN(t)?null:t}return parseFloat(e.percentagePreset)}function D(e){if("custom"===e.durationPreset){const t=parseFloat(e.customDurationMs);return isNaN(t)?null:t}return parseInt(e.durationPreset,10)}function M(e){return{httpServer:{[e.routeType]:e.route||null,method:e.method||null}}}function I(e){return"all"===e.operationType?null:"httpServer"===e.operationType?M(e):"httpClient"===e.operationType?{httpClient:{serverAddress:e.serverAddress||null,["route"===e.routeType?"templatedPath":"templatedPathPrefix"]:e.route||null,method:e.method||null}}:null}function C(e){return"all"===e.operationType?null:"httpServer"===e.operationType?M(e):"kafkaConsumer"===e.operationType?{kafkaConsumer:{kafkaTopic:e.kafkaTopic||null}}:"kafkaProducer"===e.operationType?{kafkaProducer:{kafkaTopic:e.kafkaTopic||null}}:null}function $(e){return{ruleId:"",name:e.name||null,disabled:!1,notes:e.notes||null,sourceScopes:R(e),percentageAtMost:b(e),operation:I(e)}}function E(e){return{ruleId:"",name:e.name||null,disabled:!1,notes:e.notes||null,sourceScopes:R(e),error:e.keepErrors,durationAtLeastMs:"Duration"===e.ruleType?D(e):null,percentageAtLeast:b(e),operation:C(e)}}function w(e){return{ruleId:"",name:e.name||null,disabled:!1,notes:e.notes||null,sourceScopes:R(e),percentageAtMost:b(e)??0,operation:C(e)}}function L(e){return{name:e.name||null,disabled:e.disabled,sourceScopes:P(e),operation:I(e),percentageAtMost:b(e),notes:e.notes||null}}function O(e){return{name:e.name||null,disabled:e.disabled,sourceScopes:P(e),error:"Error"===e.ruleType,durationAtLeastMs:"Duration"===e.ruleType?D(e):null,operation:C(e),percentageAtLeast:b(e),notes:e.notes||null}}function N(e){return{name:e.name||null,disabled:e.disabled,sourceScopes:P(e),operation:C(e),percentageAtMost:b(e)??0,notes:e.notes||null}}const H=["5000","1000","500","100","50"],K=["50","25","10","1","0.5","0.1","0"];function j(e){if(null==e)return{percentageMode:"all",percentagePreset:"0",customPercentage:""};const t=K.find(t=>Number(t)===e);return t?{percentageMode:"sample",percentagePreset:t,customPercentage:""}:{percentageMode:"sample",percentagePreset:"custom",customPercentage:String(e)}}function z(e){if(!e)return{operationType:"all",routeType:"route",route:"",serverAddress:"",method:"",kafkaTopic:""};const t=e;if(t.httpServer){return{operationType:"httpServer",routeType:t.httpServer.routePrefix?"routePrefix":"route",route:t.httpServer.route||t.httpServer.routePrefix||"",serverAddress:"",method:t.httpServer.method||"",kafkaTopic:""}}return t.kafkaConsumer?{operationType:"kafkaConsumer",routeType:"route",route:"",serverAddress:"",method:"",kafkaTopic:t.kafkaConsumer.kafkaTopic||""}:t.kafkaProducer?{operationType:"kafkaProducer",routeType:"route",route:"",serverAddress:"",method:"",kafkaTopic:t.kafkaProducer.kafkaTopic||""}:{operationType:"all",routeType:"route",route:"",serverAddress:"",method:"",kafkaTopic:""}}function F(e){const t=T(),r=S(e.rule.sourceScopes);const n=function(e){return"highlyRelevant"!==e.category?"Relevance":e.rule.error?"Error":null!=e.rule.durationAtLeastMs?"Duration":"Relevance"}(e);let o,a,s={durationPreset:"500",customDurationMs:""},i=!1;switch(e.category){case"noisy":o=function(e){const t=e.rule.operation;if(!t)return{operationType:"all",routeType:"route",route:"",serverAddress:"",method:"",kafkaTopic:""};if(t.httpServer)return{operationType:"httpServer",routeType:t.httpServer.routePrefix?"routePrefix":"route",route:t.httpServer.route||t.httpServer.routePrefix||"",serverAddress:"",method:t.httpServer.method||"",kafkaTopic:""};if(t.httpClient)return{operationType:"httpClient",routeType:t.httpClient.templatedPathPrefix?"routePrefix":"route",route:t.httpClient.templatedPath||t.httpClient.templatedPathPrefix||"",serverAddress:t.httpClient.serverAddress||"",method:t.httpClient.method||"",kafkaTopic:""};return{operationType:"all",routeType:"route",route:"",serverAddress:"",method:"",kafkaTopic:""}}(e),a=A(u=e.rule.percentageAtMost)?{percentageMode:"all",percentagePreset:"0",customPercentage:""}:j(u);break;case"highlyRelevant":o=z(e.rule.operation),a=j(e.rule.percentageAtLeast),s=function(e){if(null==e)return{durationPreset:"500",customDurationMs:""};const t=H.find(t=>Number(t)===e);return t?{durationPreset:t,customDurationMs:""}:{durationPreset:"custom",customDurationMs:String(e)}}(e.rule.durationAtLeastMs),i=e.rule.error;break;case"costReduction":o=z(e.rule.operation),a=j(e.rule.percentageAtMost)}var u;return{...t,name:e.rule.name||"",notes:e.rule.notes||"",disabled:e.rule.disabled,ruleType:n,sourceScopes:r,...o,...s,keepErrors:i,...a}}var X;!function(e){e.Default="default",e.Action="action",e.Endpoint="endpoint",e.Scope="scope",e.Duration="duration"}(X||(X={}));const J=[X.Action,X.Endpoint,X.Scope,X.Duration],V=h.span`
|
|
2
2
|
font-family: ${({theme:e,$isMono:t})=>t?e.font_family.secondary:e.font_family.primary};
|
|
3
3
|
font-size: ${({theme:e})=>e.v2.text.size.xxs}px;
|
|
4
4
|
line-height: 20px;
|
|
@@ -16,4 +16,4 @@ import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useMemo a
|
|
|
16
16
|
border-radius: 4px;
|
|
17
17
|
padding: 8px;
|
|
18
18
|
max-width: 300px;
|
|
19
|
-
`,_=({items:t,children:n})=>{const{popupRef:o,popupOpen:a,setPopupOpen:s,popupPosition:i,handlePosition:u}=c({positionMode:"viewport",defaultClientHeight:48,defaultClientwidth:240}),l=e=>{u(e.clientX,e.clientY),s("mouseleave"!==e.type)};return r(B,{onMouseEnter:l,onMouseMove:l,onMouseLeave:l,children:[n,e(p,{ref:o,isOpen:a,top:i.top,left:i.left,asPortal:!0,style:{backgroundColor:"transparent",border:"none"},borderRadius:"0",padding:"0",maxWidth:"300px",children:e(W,{children:t.map((t,r)=>e(d,{size:f.XXXS,children:t},r))})})]})},q=({parts:n})=>{const o=n.map(e=>({...e,text:e.text.trim()})).filter(e=>e.text.length>0);return e(t,{children:o.map((n,o)=>{const a=e(V,{$variant:n.variant,$isMono:J.includes(n.variant),children:n.text});return r(s,{children:[0!==o&&e(t,{children:" "}),n.tooltipItems?.length?e(_,{items:n.tooltipItems,children:a}):a]},`${n.variant}-${o}`)})})};var G;!function(e){e.Noisy="noisy",e.HighlyRelevant="highly-relevant",e.CostReduction="cost-reduction"}(G||(G={}));const Y=[{value:G.Noisy,label:"1. Noisy Operations",tooltip:"Rules that reduce noise from high-volume, low-value operations"},{value:G.HighlyRelevant,label:"2. Highly Relevant Operations",tooltip:"Rules that prioritize important traces for retention"},{value:G.CostReduction,label:"3. Cost Reduction",tooltip:"Rules that optimize costs by sampling less critical data"}],Q={[G.Noisy]:"This is the most efficient way to sample (with Head Sampling). Prefer to use it where possible.",[G.HighlyRelevant]:'Any trace from the "Noisy Operations" category is sampled prior to checking highly relevance.',[G.CostReduction]:"Cost reduction rules use Tail Sampling to drop traces that are unlikely to be useful for debugging or monitoring."},U={[G.Noisy]:"Noisy Operations rules list",[G.HighlyRelevant]:"Highly Relevant Operations rules list",[G.CostReduction]:"Cost Reduction rules list"},Z={[G.Noisy]:"noisy",[G.HighlyRelevant]:"highlyRelevant",[G.CostReduction]:"costReduction"},ee={noisy:G.Noisy,highlyRelevant:G.HighlyRelevant,costReduction:G.CostReduction};function te(e){const t=e.kind?String(e.kind).toLowerCase():"deployment";return e.namespace&&e.name?`${t} '${e.name}' in namespace '${e.namespace}'`:e.name?`${t} '${e.name}'`:e.namespace?`any service in namespace '${e.namespace}'`:""}function re(e){return`any service in namespace '${e}'`}function ne(e){return`${e} services`}function oe(e){const t=function(e){if(!e)return[];const t=[];for(const r of e.sources??[]){const e=te(r);e&&t.push(e)}for(const r of e.namespaces??[])r&&t.push(re(r));for(const r of e.languages??[])r&&t.push(ne(r));return t}(e);if(!t.length)return[{text:" in ",variant:X.Default},{text:"any service in the cluster",variant:X.Scope}];const r=[{text:" in ",variant:X.Default}],n=t.slice(0,2),o=t.slice(2);return n.forEach((e,t)=>{t>0&&r.push({text:", ",variant:X.Default}),r.push({text:e,variant:X.Scope})}),o.length>0&&r.push({text:` + ${o.length} more`,variant:X.Default,tooltipItems:o}),r}function ae(e,t){const r=(n=e).startsWith("/")?n.slice(1):n;var n;return t?`${t} /${r}`:`/${r}`}function se(e){const t=e.method;return e.route?[{text:" for server endpoint ",variant:X.Default},{text:ae(e.route,t),variant:X.Endpoint}]:e.routePrefix?[{text:" for endpoints under ",variant:X.Default},{text:ae(e.routePrefix,t),variant:X.Endpoint}]:[]}function ie(e){const t=[];if(A(e.percentageAtMost)?t.push({text:"Drop all traces",variant:X.Action}):(t.push({text:`Keep at most ${e.percentageAtMost}%`,variant:X.Action}),t.push({text:" of traces",variant:X.Default})),e.operation){const r=e.operation.httpServer,n=r?function(e){const t=e.method;return e.route?[{text:" where the root span is ",variant:X.Default},{text:ae(e.route,t),variant:X.Endpoint}]:e.routePrefix?[{text:" where the root span is under ",variant:X.Default},{text:ae(e.routePrefix,t),variant:X.Endpoint}]:[]}(r):[];n.length>0&&t.push(...n);const o=e.operation.httpClient,a=o?.templatedPath||o?.templatedPathPrefix,s=o?.serverAddress;if((a||s)&&0===n.length){const e=o?.method,r=a&&s?`${s}/${a}`:a||s;t.push({text:" to ",variant:X.Default}),e?t.push({text:`${e} /${r}`,variant:X.Endpoint}):t.push({text:`/${r}`,variant:X.Endpoint})}}else t.push({text:" on ",variant:X.Default}),t.push({text:"any operation",variant:X.Endpoint});return t.push(...oe(e.sourceScopes)),t}function ue(e){const t=[];if(null!=e.percentageAtLeast?(t.push({text:`Keep ${e.percentageAtLeast}%`,variant:X.Action}),t.push({text:" of traces",variant:X.Default})):t.push({text:"Keep all traces",variant:X.Action}),e.operation){const r=e.operation.httpServer;r&&t.push(...se(r))}else t.push({text:" on ",variant:X.Default}),t.push({text:"any operation",variant:X.Endpoint});return t.push(...oe(e.sourceScopes)),!e.error&&null!=e.durationAtLeastMs&&e.durationAtLeastMs>0&&(t.push({text:" with duration > ",variant:X.Default}),t.push({text:`${e.durationAtLeastMs}ms`,variant:X.Duration})),t}function le(e){const t=[];if(t.push({text:`Keep at most ${e.percentageAtMost}%`,variant:X.Action}),t.push({text:" of traces",variant:X.Default}),e.operation){const r=e.operation.httpServer,n=r?se(r):[];n.length>0&&t.push(...n);const o=e.operation.kafkaConsumer?.kafkaTopic;o&&0===n.length&&(t.push({text:" from ",variant:X.Default}),t.push({text:`topic '${o}'`,variant:X.Endpoint}))}else t.push({text:" on ",variant:X.Default}),t.push({text:"any operation",variant:X.Endpoint});return t.push(...oe(e.sourceScopes)),t}function ce(e){return e.error?"Error":null!=e.durationAtLeastMs?"Duration":"Relevance"}function pe(e,t,r){const n=Z[t],o=[];for(const a of e)switch(t){case G.Noisy:for(const e of a.noisyOperations)r?.has(e.ruleId)||o.push({ruleId:e.ruleId,samplingId:a.id,name:e.name??null,disabled:e.disabled,notes:e.notes??null,summary:ie(e),category:n});break;case G.HighlyRelevant:for(const e of a.highlyRelevantOperations)r?.has(e.ruleId)||o.push({ruleId:e.ruleId,samplingId:a.id,name:e.name??null,disabled:e.disabled,notes:e.notes??null,summary:ue(e),category:n,typeBadge:ce(e)});break;case G.CostReduction:for(const e of a.costReductionRules)r?.has(e.ruleId)||o.push({ruleId:e.ruleId,samplingId:a.id,name:e.name??null,disabled:e.disabled,notes:e.notes??null,summary:le(e),category:n})}return o}function de(e,t){switch(e){case"noisy":return ie(t);case"highlyRelevant":return ue(t);case"costReduction":return le(t)}}function fe(e,t,r,n){for(const o of e)if(o.id===t)switch(n){case"noisy":{const e=o.noisyOperations.find(e=>e.ruleId===r);if(e)return{category:"noisy",samplingId:o.id,rule:e};break}case"highlyRelevant":{const e=o.highlyRelevantOperations.find(e=>e.ruleId===r);if(e)return{category:"highlyRelevant",samplingId:o.id,rule:e};break}case"costReduction":{const e=o.costReductionRules.find(e=>e.ruleId===r);if(e)return{category:"costReduction",samplingId:o.id,rule:e};break}}return null}function he(e,t){const r=fe(e,t.samplingId,t.rule.ruleId,t.category);return r?{...r,summary:de(r.category,r.rule)}:null}function me(e,t){const r=fe(e,t.samplingId,t.ruleId,t.category);return r?{...r,summary:de(r.category,r.rule)}:null}function ve(e,t,r){for(const n of e){const o=fe(e,n.id,t,r);if(o)return{...o,summary:de(o.category,o.rule)}}return null}function ge(e){if(!e)return null;const t=(e.sources??[]).map(e=>`${e.namespace}/${e.kind}/${e.name}`).sort(),r=(e.namespaces??[]).slice().sort(),n=(e.languages??[]).slice().sort();return t.length||r.length||n.length?[t.join("|"),r.join("|"),n.join("|")].join("::"):null}function ye(e){return null==e?null:e}function xe(e,t){return JSON.stringify({sourceScopes:ge(e),operation:ye(t)})}function ke(e,t,r,n){return JSON.stringify({sourceScopes:ge(e),error:t??!1,durationAtLeastMs:(o=r,null==o?null:o),operation:ye(n)});var o}function Se(e,t){return JSON.stringify({sourceScopes:ge(e),operation:ye(t)})}function Ae(e,t,r,n){switch(t){case"noisy":{const t=xe(r.sourceScopes,r.operation);for(const r of e)for(const e of r.noisyOperations)if((!n||e.ruleId!==n)&&xe(e.sourceScopes,e.operation)===t)return e.ruleId;return null}case"highlyRelevant":{const t=ke(r.sourceScopes,r.error,r.durationAtLeastMs,r.operation);for(const r of e)for(const e of r.highlyRelevantOperations)if((!n||e.ruleId!==n)&&ke(e.sourceScopes,e.error,e.durationAtLeastMs,e.operation)===t)return e.ruleId;return null}case"costReduction":{const t=Se(r.sourceScopes,r.operation);for(const r of e)for(const e of r.costReductionRules)if((!n||e.ruleId!==n)&&Se(e.sourceScopes,e.operation)===t)return e.ruleId;return null}}}function Te(e){if(!e||!e.enabled)return[{text:"Auto rule is ",variant:X.Default},{text:"disabled",variant:X.Action}];return[{text:`Keep ${e.keepPercentage??0}%`,variant:X.Action},{text:" of ",variant:X.Default},{text:"traces for kubelet health probes in the entire cluster",variant:X.Scope}]}function Re(e){return!0===e.error&&k(e.sourceScopes)&&!e.operation&&(null==e.percentageAtLeast||100===e.percentageAtLeast)}function Pe(e){for(const t of e){const e=t.highlyRelevantOperations.find(Re);if(e)return{rule:e,samplingId:t.id}}return null}function be(e){return!e||e.disabled?[{text:"Auto rule is ",variant:X.Default},{text:"disabled",variant:X.Action}]:[{text:"Keep all traces",variant:X.Action},{text:" of ",variant:X.Default},{text:"error traces across the entire cluster",variant:X.Scope}]}function Me(e){return k(e.sourceScopes)&&!e.operation}function De(e){for(const t of e){const e=t.costReductionRules.find(Me);if(e)return{rule:e,samplingId:t.id}}return null}function Ie(e){return!e||e.disabled?[{text:" is ",variant:X.Default},{text:"disabled",variant:X.Action}]:[{text:`Keep at most ${e.percentageAtMost}%`,variant:X.Action},{text:" of ",variant:X.Default},{text:"traces across the entire cluster",variant:X.Scope}]}export{Q as A,U as B,q as C,X as D,oe as E,A as F,w as G,E as H,C as I,v as O,ee as R,G as S,Ie as a,be as b,g as c,Te as d,ie as e,ue as f,T as g,le as h,k as i,ve as j,Pe as k,De as l,x as m,S as n,pe as o,N as p,O as q,he as r,L as s,me as t,y as u,F as v,de as w,Z as x,Ae as y,Y as z};
|
|
19
|
+
`,_=({items:t,children:n})=>{const{popupRef:o,popupOpen:a,setPopupOpen:s,popupPosition:i,handlePosition:u}=c({positionMode:"viewport",defaultClientHeight:48,defaultClientwidth:240}),l=e=>{u(e.clientX,e.clientY),s("mouseleave"!==e.type)};return r(B,{onMouseEnter:l,onMouseMove:l,onMouseLeave:l,children:[n,e(p,{ref:o,isOpen:a,top:i.top,left:i.left,asPortal:!0,style:{backgroundColor:"transparent",border:"none"},borderRadius:"0",padding:"0",maxWidth:"300px",children:e(W,{children:t.map((t,r)=>e(d,{size:f.XXXS,children:t},r))})})]})},q=({parts:n})=>{const o=n.map(e=>({...e,text:e.text.trim()})).filter(e=>e.text.length>0);return e(t,{children:o.map((n,o)=>{const a=e(V,{$variant:n.variant,$isMono:J.includes(n.variant),children:n.text});return r(s,{children:[0!==o&&e(t,{children:" "}),n.tooltipItems?.length?e(_,{items:n.tooltipItems,children:a}):a]},`${n.variant}-${o}`)})})};var G;!function(e){e.Noisy="noisy",e.HighlyRelevant="highly-relevant",e.CostReduction="cost-reduction"}(G||(G={}));const Y=[{value:G.Noisy,label:"1. Noisy Operations",tooltip:"Rules that reduce noise from high-volume, low-value operations"},{value:G.HighlyRelevant,label:"2. Highly Relevant Operations",tooltip:"Rules that prioritize important traces for retention"},{value:G.CostReduction,label:"3. Cost Reduction",tooltip:"Rules that optimize costs by sampling less critical data"}],Q={[G.Noisy]:"This is the most efficient way to sample (with Head Sampling). Prefer to use it where possible.",[G.HighlyRelevant]:'Any trace from the "Noisy Operations" category is sampled prior to checking highly relevance.',[G.CostReduction]:"Cost reduction rules use Tail Sampling to drop traces that are unlikely to be useful for debugging or monitoring."},U={[G.Noisy]:"Noisy Operations rules list",[G.HighlyRelevant]:"Highly Relevant Operations rules list",[G.CostReduction]:"Cost Reduction rules list"},Z={[G.Noisy]:"noisy",[G.HighlyRelevant]:"highlyRelevant",[G.CostReduction]:"costReduction"},ee={noisy:G.Noisy,highlyRelevant:G.HighlyRelevant,costReduction:G.CostReduction};function te(e){const t=e.kind?String(e.kind).toLowerCase():"deployment";return e.namespace&&e.name?`${t} '${e.name}' in namespace '${e.namespace}'`:e.name?`${t} '${e.name}'`:e.namespace?`any service in namespace '${e.namespace}'`:""}function re(e){return`any service in namespace '${e}'`}function ne(e){return`${e} services`}function oe(e){const t=function(e){if(!e)return[];const t=[];for(const r of e.sources??[]){const e=te(r);e&&t.push(e)}for(const r of e.namespaces??[])r&&t.push(re(r));for(const r of e.languages??[])r&&t.push(ne(r));return t}(e);if(!t.length)return[{text:" in ",variant:X.Default},{text:"any service in the cluster",variant:X.Scope}];const r=[{text:" in ",variant:X.Default}],n=t.slice(0,2),o=t.slice(2);return n.forEach((e,t)=>{t>0&&r.push({text:", ",variant:X.Default}),r.push({text:e,variant:X.Scope})}),o.length>0&&r.push({text:` + ${o.length} more`,variant:X.Default,tooltipItems:o}),r}function ae(e,t){const r=(n=e).startsWith("/")?n.slice(1):n;var n;return t?`${t} /${r}`:`/${r}`}function se(e){const t=e.method;return e.route?[{text:" for server endpoint ",variant:X.Default},{text:ae(e.route,t),variant:X.Endpoint}]:e.routePrefix?[{text:" for endpoints under ",variant:X.Default},{text:ae(e.routePrefix,t),variant:X.Endpoint}]:[]}function ie(e){const t=[];if(A(e.percentageAtMost)?t.push({text:"Drop all traces",variant:X.Action}):(t.push({text:`Keep at most ${e.percentageAtMost}%`,variant:X.Action}),t.push({text:" of traces",variant:X.Default})),e.operation){const r=e.operation.httpServer,n=r?function(e){const t=e.method;return e.route?[{text:" where the root span is ",variant:X.Default},{text:ae(e.route,t),variant:X.Endpoint}]:e.routePrefix?[{text:" where the root span is under ",variant:X.Default},{text:ae(e.routePrefix,t),variant:X.Endpoint}]:[]}(r):[];n.length>0&&t.push(...n);const o=e.operation.httpClient,a=o?.templatedPath||o?.templatedPathPrefix,s=o?.serverAddress;if((a||s)&&0===n.length){const e=o?.method;if(t.push({text:" to ",variant:X.Default}),a){const r=ae(a,e);s&&(t.push({text:"server address ",variant:X.Default}),t.push({text:s,variant:X.Endpoint}),t.push({text:" ",variant:X.Default})),t.push({text:r,variant:X.Endpoint})}else s&&(t.push({text:"server address ",variant:X.Default}),t.push({text:s,variant:X.Endpoint}))}}else t.push({text:" on ",variant:X.Default}),t.push({text:"any operation",variant:X.Endpoint});return t.push(...oe(e.sourceScopes)),t}function ue(e){const t=[];if(null!=e.percentageAtLeast?(t.push({text:`Keep ${e.percentageAtLeast}%`,variant:X.Action}),t.push({text:" of traces",variant:X.Default})):t.push({text:"Keep all traces",variant:X.Action}),e.operation){const r=e.operation.httpServer;r&&t.push(...se(r))}else t.push({text:" on ",variant:X.Default}),t.push({text:"any operation",variant:X.Endpoint});return t.push(...oe(e.sourceScopes)),!e.error&&null!=e.durationAtLeastMs&&e.durationAtLeastMs>0&&(t.push({text:" with duration > ",variant:X.Default}),t.push({text:`${e.durationAtLeastMs}ms`,variant:X.Duration})),t}function le(e){const t=[];if(t.push({text:`Keep at most ${e.percentageAtMost}%`,variant:X.Action}),t.push({text:" of traces",variant:X.Default}),e.operation){const r=e.operation.httpServer,n=r?se(r):[];n.length>0&&t.push(...n);const o=e.operation.kafkaConsumer?.kafkaTopic;o&&0===n.length&&(t.push({text:" from ",variant:X.Default}),t.push({text:`topic '${o}'`,variant:X.Endpoint}))}else t.push({text:" on ",variant:X.Default}),t.push({text:"any operation",variant:X.Endpoint});return t.push(...oe(e.sourceScopes)),t}function ce(e){return e.error?"Error":null!=e.durationAtLeastMs?"Duration":"Relevance"}function pe(e,t,r){const n=Z[t],o=[];for(const a of e)switch(t){case G.Noisy:for(const e of a.noisyOperations)r?.has(e.ruleId)||o.push({ruleId:e.ruleId,samplingId:a.id,name:e.name??null,disabled:e.disabled,notes:e.notes??null,summary:ie(e),category:n});break;case G.HighlyRelevant:for(const e of a.highlyRelevantOperations)r?.has(e.ruleId)||o.push({ruleId:e.ruleId,samplingId:a.id,name:e.name??null,disabled:e.disabled,notes:e.notes??null,summary:ue(e),category:n,typeBadge:ce(e)});break;case G.CostReduction:for(const e of a.costReductionRules)r?.has(e.ruleId)||o.push({ruleId:e.ruleId,samplingId:a.id,name:e.name??null,disabled:e.disabled,notes:e.notes??null,summary:le(e),category:n})}return o}function de(e,t){switch(e){case"noisy":return ie(t);case"highlyRelevant":return ue(t);case"costReduction":return le(t)}}function fe(e,t,r,n){for(const o of e)if(o.id===t)switch(n){case"noisy":{const e=o.noisyOperations.find(e=>e.ruleId===r);if(e)return{category:"noisy",samplingId:o.id,rule:e};break}case"highlyRelevant":{const e=o.highlyRelevantOperations.find(e=>e.ruleId===r);if(e)return{category:"highlyRelevant",samplingId:o.id,rule:e};break}case"costReduction":{const e=o.costReductionRules.find(e=>e.ruleId===r);if(e)return{category:"costReduction",samplingId:o.id,rule:e};break}}return null}function he(e,t){const r=fe(e,t.samplingId,t.rule.ruleId,t.category);return r?{...r,summary:de(r.category,r.rule)}:null}function me(e,t){const r=fe(e,t.samplingId,t.ruleId,t.category);return r?{...r,summary:de(r.category,r.rule)}:null}function ve(e,t,r){for(const n of e){const o=fe(e,n.id,t,r);if(o)return{...o,summary:de(o.category,o.rule)}}return null}function ge(e){if(!e)return null;const t=(e.sources??[]).map(e=>`${e.namespace}/${e.kind}/${e.name}`).sort(),r=(e.namespaces??[]).slice().sort(),n=(e.languages??[]).slice().sort();return t.length||r.length||n.length?[t.join("|"),r.join("|"),n.join("|")].join("::"):null}function ye(e){return null==e?null:e}function xe(e,t){return JSON.stringify({sourceScopes:ge(e),operation:ye(t)})}function ke(e,t,r,n){return JSON.stringify({sourceScopes:ge(e),error:t??!1,durationAtLeastMs:(o=r,null==o?null:o),operation:ye(n)});var o}function Se(e,t){return JSON.stringify({sourceScopes:ge(e),operation:ye(t)})}function Ae(e,t,r,n){switch(t){case"noisy":{const t=xe(r.sourceScopes,r.operation);for(const r of e)for(const e of r.noisyOperations)if((!n||e.ruleId!==n)&&xe(e.sourceScopes,e.operation)===t)return e.ruleId;return null}case"highlyRelevant":{const t=ke(r.sourceScopes,r.error,r.durationAtLeastMs,r.operation);for(const r of e)for(const e of r.highlyRelevantOperations)if((!n||e.ruleId!==n)&&ke(e.sourceScopes,e.error,e.durationAtLeastMs,e.operation)===t)return e.ruleId;return null}case"costReduction":{const t=Se(r.sourceScopes,r.operation);for(const r of e)for(const e of r.costReductionRules)if((!n||e.ruleId!==n)&&Se(e.sourceScopes,e.operation)===t)return e.ruleId;return null}}}function Te(e){if(!e||!e.enabled)return[{text:"Auto rule is ",variant:X.Default},{text:"disabled",variant:X.Action}];return[{text:`Keep ${e.keepPercentage??0}%`,variant:X.Action},{text:" of ",variant:X.Default},{text:"traces for kubelet health probes in the entire cluster",variant:X.Scope}]}function Re(e){return!0===e.error&&k(e.sourceScopes)&&!e.operation&&(null==e.percentageAtLeast||100===e.percentageAtLeast)}function Pe(e){for(const t of e){const e=t.highlyRelevantOperations.find(Re);if(e)return{rule:e,samplingId:t.id}}return null}function be(e){return!e||e.disabled?[{text:"Auto rule is ",variant:X.Default},{text:"disabled",variant:X.Action}]:[{text:"Keep all traces",variant:X.Action},{text:" of ",variant:X.Default},{text:"error traces across the entire cluster",variant:X.Scope}]}function De(e){return k(e.sourceScopes)&&!e.operation}function Me(e){for(const t of e){const e=t.costReductionRules.find(De);if(e)return{rule:e,samplingId:t.id}}return null}function Ie(e){return!e||e.disabled?[{text:" is ",variant:X.Default},{text:"disabled",variant:X.Action}]:[{text:`Keep at most ${e.percentageAtMost}%`,variant:X.Action},{text:" of ",variant:X.Default},{text:"traces across the entire cluster",variant:X.Scope}]}export{Q as A,U as B,q as C,X as D,oe as E,A as F,w as G,E as H,$ as I,v as O,ee as R,G as S,Ie as a,be as b,g as c,Te as d,ie as e,ue as f,T as g,le as h,k as i,ve as j,Pe as k,Me as l,x as m,S as n,pe as o,N as p,O as q,he as r,L as s,me as t,y as u,F as v,de as w,Z as x,Ae as y,Y as z};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import{ay as e,L as a,l as t,ab as l,ac as r,dN as n,V as i,aL as s,aq as o,a9 as d,s as c,ad as u,al as p,dO as h,B as g,z as m,dP as v,dQ as f,n as b,C as y,J as x,G as C,H as S,av as $,at as T,b1 as k,T as w,a6 as P,a7 as A,y as M,M as L,aH as O,dR as I,dS as D,aR as z,dT as X,b as N,dU as R,O as H,c as E,dV as B,dW as V,dX as q,dY as G,dZ as j,d_ as U,d$ as J,ai as K,e0 as W,e1 as F,e2 as Y,e3 as Q,e4 as Z,bP as _,e5 as ee,e6 as ae,e7 as te,e8 as le,e9 as re,ea as ne,eb as ie,ec as se,ed as oe,ee as de,ef as ce,eg as ue,eh as pe,ei as he,ej as ge,ek as me,bC as ve,el as fe,em as be,en as ye,eo as xe,ep as Ce,eq as Se,er as $e,es as Te,et as ke,aX as we,Y as Pe,eu as Ae,o as Me,ev as Le,b2 as Oe,ew as Ie,ex as De,ey as ze,ez as Xe,br as Ne,ax as Re,eA as He,eB as Ee,eC as Be,db as Ve,eD as qe,eE as Ge,eF as je,e as Ue,d9 as Je,a8 as Ke,eG as We,Q as Fe,aK as Ye,N as Qe,ae as Ze,aO as _e,dn as ea,U as aa,bj as ta,be as la,bS as ra,eH as na}from"./ui-components-BmIux5o5.js";import{D as ia,C as sa,E as oa,u as da,F as ca,h as ua,f as pa,e as ha,G as ga,H as ma,I as va,i as fa,m as ba}from"./helpers-BlFl20R2.js";import{jsx as ya,jsxs as xa,Fragment as Ca}from"react/jsx-runtime";import Sa,{useMemo as $a,useCallback as Ta,useState as ka,useEffect as wa,useRef as Pa,forwardRef as Aa,useImperativeHandle as Ma}from"react";import La,{useTheme as Oa}from"styled-components";import{EditIcon as Ia,OdigosLogoTextCentral as Da,OdigosLogoTextEnterprise as za,OdigosLogoTextCommunity as Xa,OdigosLogoTextColoredCentral as Na,OdigosLogoTextColoredEnterprise as Ra,OdigosLogoTextColoredCommunity as Ha,ArrowLeftIcon as Ea,ArrowRightIcon as Ba,VSquareIcon as Va,VIcon as qa,CopyIcon as Ga,YamlIcon as ja}from"../icons.js";const Ua=({isOpen:t,onClose:l,onDeny:r,onApprove:n})=>ya(e,{title:"Discard changes?",description:"You have unsaved changes.\nIf you cancel now, your changes won't be saved.",isOpen:t,onClose:l,denyButton:{label:"Keep editing",variant:a.Secondary,onClick:()=>{r?.(),l()}},approveButton:{label:"Discard changes",variant:a.Primary,onClick:()=>{n?.(),l()}}}),Ja=({isOpen:t,onClose:l,onDeny:r,onApprove:n,action:i="delete",target:s,description:o,overrideApproveButtonLabel:d,overrideDenyButtonLabel:c})=>{const u=i.charAt(0).toUpperCase()+i.substring(1),p=s?.endsWith("s")?"these":"this";return ya(e,{title:`${u}${s?` ${s}`:""}?`,description:o??`Are you sure you want to ${i}${s?` ${p} ${s}`:""}?`,isOpen:t,onClose:l,denyButton:{label:c??"Go back",variant:a.Secondary,onClick:()=>{r?.(),l()}},approveButton:{label:d??u,variant:a.Primary,onClick:()=>{n?.(),l()}}})},Ka=({componentType:e,inputType:a,name:g,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,value:C,setValue:S,errorMessage:$,warnMessage:T,helpMessage:k,dropdownOptions:w,dropdownNoSearch:P,dropdownNoCheckbox:A,timeUnits:M,timeDefaultUnit:L})=>{switch(e){case t.Input:return ya(p,{name:g,type:a,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,value:C??"",onChange:e=>{const t=e.target.value;S(a===h.Number?""===t?null:Number(t):t)},errorMessage:$,warnMessage:T,helpMessage:k},g);case t.MultiInput:return ya(u,{name:g,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,values:Array.isArray(C)?C:c(C,[]),setValues:e=>S(e),errorMessage:$,warnMessage:T,helpMessage:k},g);case t.KeyValuePair:return ya(d,{name:g,label:m,tooltip:v,badge:f,required:y,disabled:x,limitFieldsPerRow:2,columns:[{keyName:"key",label:"Key",placeholder:"Key"},{keyName:"value",label:"Value",placeholder:"Value"}],values:Array.isArray(C)?C:c(C,[]),setValues:e=>S(e),errorMessage:$,warnMessage:T,helpMessage:k},g);case t.TextArea:return ya(o,{name:g,label:m,tooltip:v,badge:f,required:y,disabled:x,placeholder:b,value:C??"",onChange:e=>S(e.target.value),errorMessage:$,warnMessage:T,helpMessage:k},g);case t.Dropdown:return ya(s,{name:g,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,withSearch:!P,options:w?.map(e=>({id:e.id||"",label:e.label||"",withCheckbox:!A}))||[],values:C?[String(C)]:[],setValues:e=>S(e[0]),errorMessage:$,warnMessage:T,helpMessage:k},g);case t.Checkbox:return ya(i,{name:g,label:m,tooltip:v,badge:f,value:!0===C||"true"===C,onChange:e=>S(e),disabled:x,errorMessage:$,warnMessage:T,helpMessage:k},g);case t.Time:return ya(n,{name:g,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,value:C??"",setValue:e=>S(e),units:M,defaultUnit:L,errorMessage:$,warnMessage:T,helpMessage:k},g);case t.Toggle:return ya(l,{name:g,labelAlign:r.Right,label:m,tooltip:v,badge:f,value:!0===C||"true"===C,onChange:e=>S(e),disabled:x,errorMessage:$,warnMessage:T,helpMessage:k},g);default:return null}},Wa=La.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
gap: 24px;
|
|
5
|
+
padding: 8px 16px;
|
|
6
|
+
border-radius: 12px;
|
|
7
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[800]};
|
|
8
|
+
`,Fa=La.div`
|
|
9
|
+
flex: 1;
|
|
10
|
+
min-width: 0;
|
|
11
|
+
white-space: pre;
|
|
12
|
+
overflow-x: auto;
|
|
13
|
+
`,Ya=({title:e,summary:t,onEdit:l,renderAction:r})=>{const n=$a(()=>{const a=[];return e&&(a.push({text:e,variant:ia.Default}),a.push({text:" - ",variant:ia.Default})),a.push(...t),a},[e,t]);return xa(Wa,{children:[ya(Fa,{children:ya(sa,{parts:n})}),r&&r(),l&&ya(g,{"data-id":"sampling-btn-edit-auto-rule",label:v,rightIcon:Ia,variant:a.Text,size:m.S,onClick:l})]})},Qa={[$.HttpRequest]:"HTTP request",[$.HttpResponse]:"HTTP response",[$.DbQuery]:"DB query",[$.Messaging]:"messaging"};function Za(e,a,t){return 1===e?a:t??`${a}s`}function _a(e,a){const t=[],l=e.slice(0,3),r=e.slice(3);return l.forEach((e,l)=>{l>0&&t.push({text:", ",variant:ia.Default}),t.push({text:e,variant:a})}),r.length>0&&t.push({text:` + ${r.length} more`,variant:ia.Default,tooltipItems:r}),t}function et(e,a){switch(e){case b.CodeAttributes:return function(e){const a=Object.values(T).filter(a=>!!e.codeAttributes?.[a]).map(e=>k(e).toLowerCase());return a.length?[{text:"Collect",variant:ia.Action},{text:" ",variant:ia.Default},..._a(a,ia.Endpoint)]:null}(a);case b.PayloadCollection:return function(e){const a=Object.values($).filter(a=>null!=e.payloadCollection?.[a]).map(e=>Qa[e]);return a.length?[{text:"Collect",variant:ia.Action},{text:" ",variant:ia.Default},..._a(a,ia.Endpoint)]:null}(a);case b.HeadersCollection:return function(e){const a=(e.headersCollection?.[S.HeaderKeys]??[]).map(e=>e.trim()).filter(e=>e.length>0);if(!a.length)return null;const t=Za(a.length,"HTTP header");return[{text:`Collect ${a.length} ${t}`,variant:ia.Action},{text:"",variant:ia.Default,tooltipItems:a}]}(a);case b.CustomInstrumentation:return function(e){const a=(e.customInstrumentations?.[y.Java]??[]).map(e=>new x(e.className,e.methodName)).filter(e=>e.Verify()),t=(e.customInstrumentations?.[y.Golang]??[]).map(e=>new C(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)).filter(e=>e.Verify());if(!(a.length+t.length))return null;const l=[];a.length&&l.push(`${a.length} Java ${Za(a.length,"probe")}`),t.length&&l.push(`${t.length} Go ${Za(t.length,"probe")}`);const r=[...a.map(e=>`Java: ${e.toString()}`),...t.map(e=>`Go: ${e.toString()}`)];return[{text:`Apply ${l.join(" + ")}`,variant:ia.Action},{text:"",variant:ia.Default,tooltipItems:r}]}(a);default:return null}}const at=({option:e,formState:a,renderAction:t})=>{const l=$a(()=>{const t=et(e?.type,a);return t?[...t,...oa(a.sourceScopes)]:[]},[e?.type,a]),r=0===l.length;return ya(Ya,{title:r?f:"Instrumentation Rule Preview",summary:l,renderAction:t})},tt=({size:e=200,central:a=!1,useInline:t=!1})=>{const{tier:l}=da();if(t){if(a)return ya(Da,{size:e});switch(l){case w.Community:return ya(Xa,{size:e});case w.Onprem:return ya(za,{size:e});default:return null}}if(a)return ya(Na,{size:e});switch(l){case w.Community:return ya(Ha,{size:e});case w.Onprem:return ya(Ra,{size:e});default:return null}},lt=[{value:"50",label:"50%"},{value:"25",label:"25%"},{value:"10",label:"10%"},{value:"1",label:"1%"},{value:"custom",label:"Custom"}],rt=[{value:"10",label:"10%"},{value:"1",label:"1%"},{value:"0.5",label:"0.5%"},{value:"0.1",label:"0.1%"},{value:"custom",label:"Custom"}],nt=[{value:"5000",label:"5s"},{value:"1000",label:"1s"},{value:"500",label:"500ms"},{value:"100",label:"100ms"},{value:"50",label:"50ms"},{value:"custom",label:"Custom"}],it=({description:e,options:a,selected:t,onSelect:l,customName:r,customLabel:n,customPlaceholder:i,customValue:s,onCustomChange:o,customInputType:d=h.Number,customMin:c,customMax:u})=>xa(P,{$gap:6,children:[ya(A,{label:e}),xa(M,{$gap:8,$alignItems:"flex-end",children:[ya(L,{options:a,selected:t,setSelected:l}),"custom"===t&&ya(p,{name:r,label:n,placeholder:i,type:d,value:s,onChange:o,width:160,min:c,max:u})]})]}),st=()=>{},ot=e=>e.readOnly?ya(dt,{rule:e.rule}):ya(ct,{ruleType:e.ruleType,formState:e.formState,onChange:e.onChange}),dt=({rule:e})=>{const a=null!=e.durationAtLeastMs;return e.error?ya(O,{richTitle:{title:I},children:ya(l,{name:"sampling-view-toggle-keep-errors",onChange:st,value:!0,size:z.S,label:D,labelAlign:r.Right})}):a?ya(O,{richTitle:{title:X},children:xa("div",{children:[ya(N,{size:E.XXXS,color:H.Secondary,children:R}),ya(N,{size:E.XS,children:`${e.durationAtLeastMs}ms`})]})}):null},ct=({ruleType:e,formState:a,onChange:t})=>{const n=Ta(e=>t({durationPreset:e}),[t]),i=Ta(e=>t({customDurationMs:e.target.value}),[t]);return"Error"===e?ya(O,{richTitle:{title:I,subTitle:B},children:ya(l,{name:"sampling-toggle-keep-errors",value:!0,onChange:st,size:z.S,label:D,labelAlign:r.Right})}):"Duration"===e?ya(O,{richTitle:{title:X,subTitle:V},children:ya(it,{description:R,options:nt,selected:a.durationPreset,onSelect:n,customName:"sampling-input-custom-duration",customLabel:q,customPlaceholder:"200ms",customValue:a.customDurationMs,onCustomChange:i})}):null},ut=La.div`
|
|
14
|
+
display: flex;
|
|
15
|
+
gap: 32px;
|
|
16
|
+
`,pt=La.div`
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
gap: 4px;
|
|
20
|
+
`,ht=La.div`
|
|
21
|
+
display: flex;
|
|
22
|
+
flex-wrap: wrap;
|
|
23
|
+
align-items: flex-end;
|
|
24
|
+
gap: 16px;
|
|
25
|
+
`,gt=La.div`
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: flex-end;
|
|
28
|
+
gap: 16px;
|
|
29
|
+
padding: 12px 16px;
|
|
30
|
+
border-radius: 8px;
|
|
31
|
+
background-color: ${({theme:e})=>e.v2.colors.black[500]};
|
|
32
|
+
`,mt=La.div`
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: flex-end;
|
|
35
|
+
gap: 10px;
|
|
36
|
+
flex: 1;
|
|
37
|
+
`,vt=La.div`
|
|
38
|
+
display: flex;
|
|
39
|
+
align-items: center;
|
|
40
|
+
height: 32px;
|
|
41
|
+
`,ft=La.div`
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: flex-end;
|
|
44
|
+
gap: 16px;
|
|
45
|
+
margin-bottom: 12px;
|
|
46
|
+
`,bt="Any",yt="Kafka topic",xt=()=>ya("div",{style:{marginBottom:"8px"},children:ya(N,{size:E.XS,weight:500,children:"And"})}),Ct=[{value:"all",label:"All Operations"},{value:"httpServer",label:"HTTP Server"},{value:"httpClient",label:"HTTP Client"}],St=[{value:"all",label:"All Operations"},{value:"httpServer",label:"HTTP Server"},{value:"kafkaConsumer",label:"Kafka Consumer"},{value:"kafkaProducer",label:"Kafka Producer"}],$t=[{id:"",label:bt},{id:"GET",label:"GET"},{id:"POST",label:"POST"},{id:"PUT",label:"PUT"},{id:"DELETE",label:"DELETE"},{id:"PATCH",label:"PATCH"}];const Tt=e=>e.readOnly?ya(kt,{data:e.data}):ya(wt,{category:e.category,formState:e.formState,onChange:e.onChange}),kt=({data:e})=>{const a=$a(()=>function(e){if("noisy"===e.category){const a=e.rule.operation;if(a?.httpServer)return[{id:"type",title:le,value:te},{id:"route",title:Y,value:a.httpServer.route||a.httpServer.routePrefix||re},{id:"method",title:ee,value:a.httpServer.method||bt}];if(a?.httpClient){const e=[{id:"type",title:le,value:ne}];return a.httpClient.serverAddress&&e.push({id:"serverAddress",title:"Server address",value:a.httpClient.serverAddress}),e.push({id:"route",title:Y,value:a.httpClient.templatedPath||a.httpClient.templatedPathPrefix||re}),e.push({id:"method",title:ee,value:a.httpClient.method||bt}),e}return[{id:"type",title:le,value:ie}]}const a=e.rule.operation;return a?.httpServer?[{id:"type",title:le,value:te},{id:"route",title:Y,value:a.httpServer.route||a.httpServer.routePrefix||re},{id:"method",title:ee,value:a.httpServer.method||bt}]:a?.kafkaConsumer?[{id:"type",title:le,value:se},{id:"topic",title:yt,value:a.kafkaConsumer.kafkaTopic||re}]:a?.kafkaProducer?[{id:"type",title:le,value:oe},{id:"topic",title:yt,value:a.kafkaProducer.kafkaTopic||re}]:[{id:"type",title:le,value:ie}]}(e),[e]);return ya(O,{richTitle:{title:G},children:ya(ut,{children:a.map(({id:e,title:a,value:t})=>xa(pt,{children:[ya(N,{size:E.XXXS,color:H.Secondary,nowrap:!0,children:a}),ya(N,{size:E.XS,nowrap:!0,children:t})]},e))})})},wt=({category:e,formState:t,onChange:l})=>{const r=$a(()=>"noisy"===e?Ct:St,[e]),n=Ta(e=>l({operationType:e,route:"",serverAddress:"",method:"",kafkaTopic:""}),[l]),i=Ta(e=>a=>{a&&l({routeType:e,route:""})},[l]),s=Ta(e=>l({route:e.target.value}),[l]),o=Ta(e=>l({serverAddress:e.target.value}),[l]),d=Ta(e=>l({method:e[0]||""}),[l]),c=Ta(e=>l({kafkaTopic:e.target.value}),[l]),u="httpServer"===t.operationType||"httpClient"===t.operationType,h="kafkaConsumer"===t.operationType||"kafkaProducer"===t.operationType,g="httpClient"===t.operationType?F:Y,v="httpClient"===t.operationType?Q:Z;return xa(O,{richTitle:{title:`2. ${G}`,subTitle:j},children:[ya(P,{$alignItems:"flex-start",children:ya(L,{options:r,selected:t.operationType,setSelected:n})}),u&&xa(ht,{children:["httpClient"===t.operationType&&xa(ft,{children:[ya(p,{name:"sampling-input-server-address",label:J,placeholder:U,value:t.serverAddress,onChange:o}),ya(xt,{})]}),xa(gt,{children:[xa(mt,{children:[ya(vt,{children:ya(K,{"data-id":"sampling-radio-route",value:"route"===t.routeType,onChange:i("route")})}),ya(p,{name:"sampling-input-route",label:g,placeholder:W,value:"route"===t.routeType?t.route:"",onChange:s,disabled:"route"!==t.routeType})]}),xa(mt,{children:[ya(vt,{children:ya(K,{"data-id":"sampling-radio-route-prefix",value:"routePrefix"===t.routeType,onChange:i("routePrefix")})}),ya(p,{name:"sampling-input-route-prefix",label:v,placeholder:W,value:"routePrefix"===t.routeType?t.route:"",onChange:s,disabled:"routePrefix"!==t.routeType})]})]}),xa(ft,{children:[ya(xt,{}),ya(_,{label:ee,items:$t,selectedIds:[t.method||""],setSelectedIds:e=>d(e),buttonProps:{"data-id":"sampling-btn-method",label:$t.find(e=>e.id===t.method)?.label||bt,size:m.S,variant:a.Secondary}})]})]}),h&&ya(p,{name:"sampling-input-kafka-topic",label:ae,placeholder:"Type kafka topic",value:t.kafkaTopic,onChange:c,width:"320px"})]})},Pt=[{value:"all",label:"Drop All"},{value:"sample",label:"Sample"}],At=[{value:"all",label:"Keep All"},{value:"sample",label:"Sample"}];const Mt=e=>e.readOnly?ya(Lt,{data:e.data}):ya(Ot,{category:e.category,formState:e.formState,onChange:e.onChange}),Lt=({data:e})=>{const a=$a(()=>function(e){switch(e.category){case"highlyRelevant":return null!=e.rule.percentageAtLeast?{title:ce,method:he,description:ue,value:`${e.rule.percentageAtLeast}%`}:{title:ce,method:me,description:null,value:null};case"noisy":return ca(e.rule.percentageAtMost)?{title:ce,method:ge,description:null,value:null}:{title:ce,method:he,description:pe,value:`${e.rule.percentageAtMost}%`};case"costReduction":return{title:ce,method:he,description:pe,value:`${e.rule.percentageAtMost}%`}}}(e),[e]),t=[{id:"method",title:ee,value:a.method},...null!=a.description?[{id:"value",title:a.description,value:a.value}]:[]];return ya(O,{richTitle:{title:a.title},children:ya(ut,{children:t.map(({id:e,title:a,value:t})=>xa(pt,{children:[ya(N,{size:E.XXXS,color:H.Secondary,nowrap:!0,children:a}),ya(N,{size:E.XS,nowrap:!0,children:t})]},e))})})},Ot=({category:e,formState:a,onChange:t})=>{const l="highlyRelevant"===e,r=l?At:Pt,n=`${l?4:3}. ${ce}`,i=de[e],s=l?ue:pe,o="noisy"===e?rt:lt,d=Ta(e=>t({percentageMode:e}),[t]),c=Ta(e=>t({percentagePreset:e}),[t]),u=Ta(e=>t({customPercentage:e.target.value}),[t]);return xa(O,{richTitle:{title:n,subTitle:i},children:["costReduction"!==e&&ya(P,{$alignItems:"flex-start",children:ya(L,{options:r,selected:a.percentageMode,setSelected:d})}),("costReduction"===e||"sample"===a.percentageMode)&&ya(it,{description:s,options:o,selected:a.percentagePreset,onSelect:c,customName:"sampling-input-custom-percentage",customPlaceholder:"5%",customValue:a.customPercentage,onCustomChange:u,customInputType:h.Decimal,customMin:0,customMax:100})]})},It=La.div`
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: flex-end;
|
|
49
|
+
gap: 16px;
|
|
50
|
+
`,Dt=La.div`
|
|
51
|
+
width: 280px;
|
|
52
|
+
flex-shrink: 0;
|
|
53
|
+
`,zt=La.div`
|
|
54
|
+
flex: 1;
|
|
55
|
+
min-width: 0;
|
|
56
|
+
`;function Xt(e){return"highlyRelevant"===e.category?e.rule.error?"Error":null!=e.rule.durationAtLeastMs?"Duration":"Relevance":$e[e.category]}const Nt=e=>e.readOnly?ya(Rt,{data:e.data}):ya(Ht,{formState:e.formState,onChange:e.onChange}),Rt=({data:e})=>{const a=$a(()=>[{id:"name",title:fe,value:e.rule.name||ve},{id:"type",title:be,value:Xt(e)}],[e]),t=e.rule.notes||re;return xa(O,{children:[ya(ut,{children:a.map(({id:e,title:a,value:t})=>xa(pt,{children:[ya(N,{size:E.XXXS,color:H.Secondary,nowrap:!0,children:a}),ya(N,{size:E.XS,nowrap:!0,children:t})]},e))}),xa(pt,{children:[ya(N,{size:E.XXXS,color:H.Secondary,children:ye}),ya(N,{size:E.XS,children:t})]})]})},Ht=({formState:e,onChange:a})=>{const t=Ta(e=>a({name:e.target.value}),[a]),l=Ta(e=>a({notes:e.target.value}),[a]);return ya(O,{children:xa(It,{children:[ya(Dt,{children:ya(p,{name:"sampling-input-rule-name",label:fe,tooltip:"Optional. Give this rule a name for easier identification.",placeholder:xe,value:e.name,onChange:t})}),ya(zt,{children:ya(p,{name:"sampling-input-note",label:ye,tooltip:Se,placeholder:Ce,value:e.notes,onChange:l})})]})})},Et=[{value:"Relevance",label:"Relevance"},{value:"Error",label:"Error"},{value:"Duration",label:"Duration"}],Bt=({formState:e,onChange:a})=>{const t=Ta(e=>a({ruleType:e,keepErrors:"Error"===e}),[a]);return ya(O,{richTitle:{title:`3. ${be}`,subTitle:Te},children:ya(P,{$alignItems:"flex-start",children:ya(L,{options:Et,selected:e.ruleType,setSelected:t})})})},Vt=e=>{const a=$a(()=>{if(e.readOnly)return e.summary;switch(e.category){case"noisy":return ha(va(e.formState));case"highlyRelevant":return pa(ma(e.formState));case"costReduction":return ua(ga(e.formState))}},[e]);if(e.readOnly)return ya(Ya,{title:ke,summary:a,renderAction:e.renderAction});const t=1===a.length&&"default"===a[0].variant;return ya(Ya,{title:t?f:ke,summary:t?[]:a,renderAction:e.renderAction})},qt=La.div`
|
|
57
|
+
display: flex;
|
|
58
|
+
flex-wrap: wrap;
|
|
59
|
+
gap: 8px;
|
|
60
|
+
`,Gt=La.div`
|
|
61
|
+
display: flex;
|
|
62
|
+
align-items: center;
|
|
63
|
+
gap: 8px;
|
|
64
|
+
padding: 8px 12px;
|
|
65
|
+
border-radius: 8px;
|
|
66
|
+
cursor: pointer;
|
|
67
|
+
background: ${({theme:e,$selected:a})=>a?e.v2.colors.silver[700]:e.v2.colors.silver[800]};
|
|
68
|
+
border: 1px solid ${({theme:e,$selected:a})=>a?e.v2.colors.silver[500]:e.v2.colors.silver[750]};
|
|
69
|
+
|
|
70
|
+
&:hover {
|
|
71
|
+
background: ${({theme:e})=>e.v2.colors.silver[700]};
|
|
72
|
+
}
|
|
73
|
+
`,jt=La.div`
|
|
74
|
+
display: flex;
|
|
75
|
+
width: 32px;
|
|
76
|
+
height: 32px;
|
|
77
|
+
justify-content: center;
|
|
78
|
+
align-items: center;
|
|
79
|
+
flex-shrink: 0;
|
|
80
|
+
`,Ut=La.div`
|
|
81
|
+
display: flex;
|
|
82
|
+
flex-direction: column;
|
|
83
|
+
gap: 12px;
|
|
84
|
+
`,Jt=La.div`
|
|
85
|
+
display: flex;
|
|
86
|
+
flex-wrap: wrap;
|
|
87
|
+
gap: 6px;
|
|
88
|
+
`,Kt=La.div`
|
|
89
|
+
display: flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
gap: 8px;
|
|
92
|
+
&::before,
|
|
93
|
+
&::after {
|
|
94
|
+
content: '';
|
|
95
|
+
flex: 1;
|
|
96
|
+
height: 1px;
|
|
97
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[700]};
|
|
98
|
+
}
|
|
99
|
+
`,Wt=La.div`
|
|
100
|
+
padding: 2px 10px;
|
|
101
|
+
border-radius: 999px;
|
|
102
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[700]};
|
|
103
|
+
border: 1px solid ${({theme:e})=>e.v2.colors.silver[600]};
|
|
104
|
+
`,Ft={[Ne.JavaScript]:"Node.js",[Ne.DotNet]:".NET",[Ne.Php]:"PHP",[Ne.Java]:"Java",[Ne.Go]:"Go",[Ne.Python]:"Python",[Ne.Ruby]:"Ruby",[Ne.Rust]:"Rust"},Yt=[Ne.Python,Ne.Java,Ne.JavaScript,Ne.DotNet,Ne.Php,Ne.Ruby,Ne.Go],Qt=[{value:"all",label:"Entire Cluster"},{value:"source",label:"Specific Source"},{value:"namespace",label:"Specific Namespace"},{value:"language",label:"Specific Programming Language"}];function Zt(e){const a=Ft[e];return a||e.charAt(0).toUpperCase()+e.slice(1)}function _t(e){return null!=e?`${e}. ${je}`:je}const el=({readOnly:e,...a})=>ya(e?ll:nl,{...a}),al=({title:e,count:a,children:t})=>xa(P,{$gap:6,children:[xa(M,{$gap:8,$alignItems:"center",children:[ya(N,{size:E.XS,color:H.Primary,nowrap:!0,children:e}),a>1&&xa(N,{size:E.XXS,color:H.Secondary,nowrap:!0,children:["(",qe,")"]})]}),ya(Jt,{children:t})]}),tl=()=>{const e=Oa();return ya(Kt,{children:ya(Wt,{children:ya(N,{size:E.XXS,color:e.v2.colors.white[500],nowrap:!0,children:Ge})})})},ll=({scopes:e,titleNumber:a})=>{const t=_t(a);if(fa(e))return ya(we,{bgTint:"900",richTitle:{title:t},withCollapse:!0,collapseIsDefaultOpen:!0,children:ya(Pe,{status:Me.Default,message:Ae,fullWidth:!0})});const l=e.sources??[],r=e.namespaces??[],n=e.languages??[],i=[];return l.length&&i.push({kind:"sources",node:ya(al,{title:Le,count:l.length,children:l.map((e,a)=>{const t=[e.namespace,e.kind,e.name].filter(Boolean),l=t.length?t.join(" / "):Ie;return ya(Oe,{label:l},`src-${a}-${l}`)})})}),r.length&&i.push({kind:"namespaces",node:ya(al,{title:De,count:r.length,children:r.map((e,a)=>ya(Oe,{label:e},`ns-${a}-${e}`))})}),n.length&&i.push({kind:"languages",node:ya(al,{title:ze,count:n.length,children:n.map((e,a)=>{const t=Re(e);return ya(Oe,{label:Zt(e),leftIcon:t},`lang-${a}-${e}`)})})}),ya(we,{bgTint:"900",richTitle:{title:t,subTitle:i.length>1?Xe:void 0},withCollapse:!0,collapseIsDefaultOpen:!0,children:ya(we,{bgTint:"800",children:ya(Ut,{children:i.map((e,a)=>xa(Sa.Fragment,{children:[a>0&&ya(tl,{}),e.node]},e.kind))})})})},rl=e=>e.sources.length>0?"source":e.namespaces.length>0?"namespace":e.languages.length>0?"language":"all",nl=({scopes:e,onChange:a,sourceOptions:t=[],namespaceOptions:l=[],supportedLanguages:r,titleNumber:n,dataIdPrefix:s="source-scope",slim:o})=>{const d=e??ba(),[c,u]=ka(()=>rl(d)),{sources:p,namespaces:h,languages:g}=d,m=p.length>0||h.length>0||g.length>0;wa(()=>{m&&"all"===c&&u(rl(d))},[m,c]);const v=$a(()=>Qt.map(e=>"language"===e.value&&0===r?.length?null:{...e,disabled:"all"===e.value&&m}).filter(Boolean),[m]),f=$a(()=>p.map(e=>{return a=e.namespace,t=e.kind,l=e.name,`${a}/${t}/${l}`;var a,t,l}),[p]),b=$a(()=>[...h],[h]),y=$a(()=>new Set(g),[g]),x=Ta(e=>{u(e)},[]),C=Ta(e=>{const t=e.map(e=>function(e){const a=e.split("/");return 3!==a.length?null:{namespace:a[0],kind:a[1],name:a[2]}}(e)).filter(e=>null!=e).map(e=>({namespace:e.namespace,kind:e.kind,name:e.name}));a({...d,sources:t})},[d,a]),S=Ta(e=>{a({...d,namespaces:e})},[d,a]),$=Ta(e=>{const t=d.languages,l=t.includes(e)?t.filter(a=>a!==e):[...t,e];a({...d,languages:l})},[d,a]),T=!m&&"all"===c,k=(r||Yt).map(e=>({id:e,label:Ft[e]??e.charAt(0).toUpperCase()+e.slice(1),Icon:Re(e)}));return xa(O,{richTitle:o?{title:_t(n),titleSize:E.XS,titleColor:H.Secondary,tooltip:He}:{title:_t(n),subTitle:He,subTitleWrap:!0},backgroundColor:o?"transparent":void 0,padding:o?0:void 0,children:[ya(Pe,T?{status:Me.Default,message:Ae,fullWidth:!0,smallIcon:!0}:{status:Me.Info,message:Xe,fullWidth:!0,smallIcon:!0}),ya(P,{$alignItems:"flex-start",children:ya(L,{options:v,selected:c,setSelected:x})}),"source"===c&&ya(Ee,{multiple:!0,"data-id":`${s}-autocomplete-source`,options:t,value:f,onSelect:C,placeholder:Be}),"namespace"===c&&ya(Ee,{multiple:!0,"data-id":`${s}-autocomplete-namespace`,options:l,value:b,onSelect:S,placeholder:"Search namespace"}),"language"===c&&k.length>0&&ya(qt,{children:k.map(({id:e,label:a,Icon:t})=>{const l=y.has(e);return xa(Gt,{$selected:l,onClick:()=>$(e),children:[ya(i,{name:`${s}-lang-${e}`,size:Ve.S,value:l,onChange:()=>$(e)}),ya(jt,{children:ya(t,{size:20})}),ya(N,{size:E.XS,nowrap:!0,children:a})]},e)})})]})},il=(e,a)=>!a?.length||!!a?.find(a=>a===e),sl=({title:e="Signals",required:a,errorMessage:t,allowedSignals:l,selectedSignals:r,setSelectedSignals:n,disabled:s})=>{const[o,d]=ka(1===r.length),c=Pa(JSON.stringify(r));wa(()=>{let e=Ue(r).filter(e=>il(e,l));e.length||(e=Je.filter(({id:e})=>il(e,l)).map(({id:e})=>e));const a=JSON.stringify(e);c.current!==a&&(c.current=a,n(e),d(1===e.length))},[l,r]);return xa(P,{$gap:12,children:[ya(A,{label:e,required:a}),ya(M,{$gap:12,children:Je.map(e=>{const a=il(e.id,l),t=((e,a)=>!!a?.find(a=>a===e))(e.id,r);return a?ya(i,{label:e.value,disabled:s||!a||o&&t,value:t,onChange:a=>((e,a)=>{const t=e,l=a?[...r,t]:r.filter(e=>e!==t);n(l),d(1===l.length)})(e.id,a)},e.id):null})}),ya(Ke,{errorMessage:t})]})},ol=({minSupportedVersion:a,currentVersion:t})=>ya(e,{isOpen:!0,onClose:()=>{},relativeToParent:!0,visual:()=>ya(We,{scale:2.4,icon:()=>ya("svg",{xmlns:"http://www.w3.org/2000/svg",width:"22",height:"21",viewBox:"0 0 22 21",fill:"none",children:ya("path",{fill:"#151618",d:"M9.4844 0.730003C9.99694 -0.243259 11.4076 -0.24341 11.92 0.730003L11.9685 0.831353L14.3039 6.22012L20.153 6.77755C21.3553 6.89211 21.841 8.38683 20.9358 9.18621L16.5314 13.0731L17.8091 18.8079C18.0716 19.9868 16.8005 20.9109 15.7605 20.2969L10.7017 17.3093L5.64282 20.2969C4.60289 20.9104 3.33173 19.9866 3.59427 18.8079L4.87192 13.0741L0.468608 9.18621C-0.43662 8.38693 0.0482932 6.8924 1.25029 6.77755L7.09837 6.22012L9.43588 0.831353L9.4844 0.730003ZM8.55284 7.02876C8.35287 7.48992 7.9179 7.80589 7.41751 7.85357L2.03952 8.36571L6.09027 11.941C6.46691 12.2737 6.63296 12.7852 6.5237 13.2758L5.34956 18.5459L10.0008 15.8009L10.1669 15.7179C10.5087 15.574 10.8945 15.5741 11.2364 15.7179L11.4036 15.8009L16.0538 18.5459L14.8807 13.2758C14.7714 12.7851 14.9374 12.2737 15.3141 11.941L19.3627 8.36571L13.9858 7.85357C13.4855 7.80587 13.0505 7.4899 12.8505 7.02876L10.7017 2.07342L8.55284 7.02876Z"})})}),title:"Upgrade Required",description:`To use this feature, please upgrade to Odigos v${a} or later.\nCurrent version: ${t}.`}),dl=La.div`
|
|
105
|
+
display: flex;
|
|
106
|
+
flex-direction: column;
|
|
107
|
+
justify-content: flex-end;
|
|
108
|
+
width: ${({$width:e})=>e};
|
|
109
|
+
gap: ${({$columnHasHeader:e})=>e?"0":"12px"};
|
|
110
|
+
`,cl=La.div`
|
|
111
|
+
display: flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
min-height: 24px;
|
|
114
|
+
padding: 12px;
|
|
115
|
+
border-radius: 16px 16px 0 0;
|
|
116
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[800]};
|
|
117
|
+
`,ul=La.div`
|
|
118
|
+
display: flex;
|
|
119
|
+
flex-direction: column;
|
|
120
|
+
gap: ${({$gap:e})=>e}px;
|
|
121
|
+
padding: 12px 12px 0 12px;
|
|
122
|
+
width: 100%;
|
|
123
|
+
height: ${({$heightOffset:e,$columnHasHeader:a})=>`calc(100vh - 180px - ${e}px ${a?"- 48px":""})`};
|
|
124
|
+
border-radius: ${({$columnHasHeader:e,$isLeft:a,$isRight:t})=>e?a?"0 0 0 16px":t?"0 16px 0 0":"0":a?"16px 0 0 16px":t?"0 16px 16px 0":"16px"};
|
|
125
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[900]};
|
|
126
|
+
overflow-y: auto;
|
|
127
|
+
overflow-x: hidden;
|
|
128
|
+
`,pl=({isLeft:e,isRight:a,heightOffset:t=0,width:l,header:r,list:n})=>xa(dl,{$width:l,$columnHasHeader:!!r,children:[r&&ya(cl,{children:r}),ya(ul,{$gap:8,$isLeft:e,$isRight:a,$heightOffset:t,$columnHasHeader:!!r,children:n.length?n.length>1?ya(Fe,{gap:8,elements:n}):ya(Ca,{children:n[0]}):ya(Ye,{$height:"100%",children:ya(Qe,{})})})]}),hl="75vw",gl=La.div`
|
|
129
|
+
display: flex;
|
|
130
|
+
flex-direction: column;
|
|
131
|
+
border-radius: 16px;
|
|
132
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
|
|
133
|
+
overflow: hidden;
|
|
134
|
+
`,ml=La.div`
|
|
135
|
+
display: flex;
|
|
136
|
+
gap: 12px;
|
|
137
|
+
padding: 16px 16px 0 16px;
|
|
138
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
|
|
139
|
+
position: sticky;
|
|
140
|
+
top: 0;
|
|
141
|
+
`,vl=La.div`
|
|
142
|
+
padding: 12px 12px 0 12px;
|
|
143
|
+
`,fl=La.div`
|
|
144
|
+
display: flex;
|
|
145
|
+
gap: 12px;
|
|
146
|
+
padding: 16px;
|
|
147
|
+
`,bl=La.div`
|
|
148
|
+
padding: 5vh 10vw;
|
|
149
|
+
border-radius: 12px;
|
|
150
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[800]};
|
|
151
|
+
`,yl=Aa(({isOpen:t,withOverlay:l,disableAnimation:r,onClose:n,onBack:i,onNext:s,nextIsSkip:o,onSave:d,disableSave:c,connectionIds:u,header:p,subHeader:h,leftColumn:g,rightColumn:m,search:v,filters:f,errorMessage:b,isFormDirty:y,hideDirtyNote:x,isFetching:C,progress:S},$)=>{const[T,k]=ka(!1),[w,P]=ka(!1),[A,M]=ka(void 0);Ma($,()=>({clearErrors:()=>M(void 0)}));const L=w,O=Ta(()=>{y&&!T?k(!0):(k(!1),n?.())},[y,T,n]),I=c||w||"boolean"==typeof y&&!y,D=Ta(async()=>{P(!0);const e=await d();P(!1),!1!==e&&(e?.error?M(e.error):(u?.setValue([]),n?.()))},[d,u,n]),z=!!v||!!u||!!f,X=!!h,N=(z?48:0)+(X?50:0),R=$a(()=>C?{status:Me.Info,message:"Fetching Data..."}:w&&!S?{status:Me.Info,message:"Saving Changes..."}:A||b?{status:Me.Error,message:A||b}:"boolean"==typeof y&&y&&!x?{status:Me.Info,message:'The values don\'t reflect the current configurations of the selected clusters.\n"Save" will override the current configurations.'}:"boolean"!=typeof y||y||x?void 0:{status:Me.Success,message:"The values reflect the current configuration of the selected cluster."},[C,w,S,A,b,y,x]),H=$a(()=>i?{label:"Back",leftIcon:Ea,variant:a.Secondary,onClick:i}:{label:"Cancel",variant:a.Secondary,onClick:O,disabled:L},[i,O,L]),[B,V]=ka(!1),q=$a(()=>s?o?{"data-id":"wide-drawer-skip",label:"Skip",rightIcon:Ba,variant:a.Secondary,onClick:()=>V(!0)}:{"data-id":"wide-drawer-next",label:"Next",rightIcon:Ba,variant:a.Primary,onClick:s}:{"data-id":"wide-drawer-save",label:"Save",variant:a.Primary,onClick:D,disabled:I},[s,o,D,I]);return xa(Ze,{width:hl,isOpen:t,disableAnimation:r,hideOverlay:!w&&!l,header:{...p,onClose:n?O:void 0,onCloseDisabled:L},footer:{note:R,actions:[H,q]},children:[w?ya(Ye,{$height:"calc(100vh - 136px)",children:ya(bl,{children:ya(_e,{titleSize:E.S,subTitleSize:E.XXXS,withGradient:!0,withSpinner:!0,...S})})}):xa(gl,{children:[z&&xa(ml,{children:[u&&ya(ea,{icon:Va,title:"Selected Clusters",badge:{label:u.value.length}}),v&&ya(aa,{width:"100%",...v}),f]}),X&&ya(vl,{children:ya(ea,{icon:h.icon,title:h.title,subTitle:h.description,badge:h.badge})}),xa(fl,{children:[ya(pl,{isLeft:!0,heightOffset:N,...g}),ya(pl,{isRight:!0,heightOffset:N,...m})]})]}),ya(Ua,{isOpen:T,onClose:()=>k(!1),onApprove:O}),ya(e,{title:"Skip setup?",description:"Without completing setup, Odigos won't be able to collect and send your telemetry data. This may interrupt your data flow and limit the platform's ability to provide value.",isOpen:B,onClose:()=>V(!1),denyButton:{label:"Go Back",variant:a.Secondary,onClick:()=>V(!1)},approveButton:{label:"Skip",variant:a.Primary,onClick:()=>{s?.(),V(!1)}}})]})});yl.displayName=yl.name;const xl=La.div`
|
|
152
|
+
padding: 0 24px;
|
|
153
|
+
border-radius: 12px;
|
|
154
|
+
background-color: ${({$codeBgColor:e})=>e||"transparent"};
|
|
155
|
+
`,Cl=({title:e="YAML",yaml:t,defaultOpen:l,fullHeight:r,bgTint:n="1000",codeBgColor:i})=>{const{clickCopy:s,isCopied:o}=ta(),d=$a(()=>t?[{id:ra(),type:la.Button,buttonProps:{variant:a.Text,size:m.S,leftIcon:o?qa:Ga,onClick:()=>s(t||""),disabled:o}}]:[],[t,o]);return ya(we,{bgTint:n,richTitle:{icon:ja,title:e},actions:d,withCollapse:!0,collapseIsDefaultOpen:l,fullHeight:r,children:ya(xl,{$codeBgColor:i,children:t?ya(na,{code:t,language:"yaml",theme:"duotoneDark"}):ya(Ye,{children:ya(Qe,{title:"YAML not found",subTitle:"The YAML for this resource is not available"})})})})};export{Ya as A,Ua as C,Ka as D,at as I,rt as N,Tt as O,it as P,Nt as R,sl as S,ol as U,yl as W,Cl as Y,el as a,lt as b,Vt as c,Bt as d,ot as e,Mt as f,Ja as g,tt as h,hl as i,nt as j};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useState as t,useCallback as a,useMemo as n,useContext as r,createContext as s,useRef as o,useEffect as i}from"react";import{d as l,e as d,A as c,f as u,g as m,i as p,F as h,h as f,j as g,D as v,m as b,S as y,s as D,k as E,l as S,I as k,H as C,C as A,G as F,J as I,n as w,K as N,T as x,E as R}from"./ui-components-B1TCLO_N.js";import{d as P}from"./use-odigos-api-DnIoW4_W.js";import{n as T,m as O,i as L,b as M,a as U,d as j,v as K,g as G,u as V}from"./helpers-CUmUiA_l.js";const _={type:"",disabled:!1,name:"",notes:"",signals:[],fields:{}},q=s(null),H="All row fields are required",z="At least one row is required",J=(e,t)=>!!e&&t.every(t=>{const a=e[t];return Array.isArray(a)?a.length>0:!("string"==typeof(n=a)?!n.trim():p(n));var n}),Q=({children:r})=>{const[s,o]=t(null),i=l(_),f=a(e=>{i.resetFormData(),i.handleErrorChange(void 0,void 0,{}),e?.type&&i.handleFormChange("type",e.type),o(e)},[]),g=a(e=>{var t;i.resetFormData((({type:e,name:t,notes:a,disabled:n,signals:r,fields:s})=>({type:e,name:t||"",notes:a||"",disabled:!!n,signals:r??[],fields:s??{}}))(e)),i.handleErrorChange(void 0,void 0,{}),o((t=e.type,c.find(e=>e.type===t)??null))},[]),v=a(()=>{if(!s)return{errorMessage:"No action type selected",preparedFormData:d(_)};const e=(e=>{const t=d(e),a=t.fields||{},n=a[u.UrlTemplatizationRulesGroups];n?.length&&(a[u.UrlTemplatizationRulesGroups]=n.map(e=>({...e,templatizationRules:(e.templatizationRules||[]).filter(e=>!!e.template?.trim())})));const r=a[u.AttributeNamesToDelete];r?.length&&(a[u.AttributeNamesToDelete]=r.filter(e=>!!e?.trim()));const s=a[u.Renames];s&&(a[u.Renames]=Object.fromEntries(Object.entries(s).filter(([e,t])=>!!e?.trim()&&!!t?.trim())));const o=a[u.ExtractAttribute];return o?.extractions?.length&&(a[u.ExtractAttribute]={extractions:o.extractions.map(e=>({targetAttributeName:e.targetAttributeName?.trim()||"",lookupKey:e.lookupKey?.trim()||"",dataFormat:e.dataFormat||"",regex:e.regex?.trim()||""})).filter(e=>!!(e.targetAttributeName||e.lookupKey||e.dataFormat||e.regex))}),t.fields=a,t})(i.formData),t={};p(e.signals)&&(t.signals=h.FIELD_IS_REQUIRED),s.type&&Object.assign(t,((e,t,a)=>{const n={},r=t.fields||{},s=a.fields||{};switch(e){case m.K8sAttributes:{const e=!(r[u.CollectContainerAttributes]||r[u.CollectReplicaSetAttributes]||r[u.CollectWorkloadId]||r[u.CollectClusterId]),t=!r[u.LabelsAttributes]?.length,a=!r[u.AnnotationsAttributes]?.length;e&&t&&a&&(n[u.CollectContainerAttributes]="Enable at least one option or add a label/annotation row");const s=r[u.LabelsAttributes];s?.some(e=>!J(e,["labelKey","attributeKey","fromSources"]))&&(n[u.LabelsAttributes]=H);const o=r[u.AnnotationsAttributes];o?.some(e=>!J(e,["annotationKey","attributeKey","fromSources"]))&&(n[u.AnnotationsAttributes]=H);break}case m.AddClusterInfo:{const e=r[u.ClusterAttributes];e?.length?e.some(e=>!J(e,["attributeName","attributeStringValue"]))&&(n[u.ClusterAttributes]=H):n[u.ClusterAttributes]=z;break}case m.DeleteAttributes:{const e=s[u.AttributeNamesToDelete]||[],t=r[u.AttributeNamesToDelete]||[];t.length?e.length>t.length&&(n[u.AttributeNamesToDelete]=H):n[u.AttributeNamesToDelete]=e.length?H:z;break}case m.RenameAttributes:{const e=Object.entries(s[u.Renames]||{}),t=Object.entries(r[u.Renames]||{}),a=e.some(([e,t])=>!e?.trim()||!t?.trim());t.length?a&&(n[u.Renames]=H):n[u.Renames]=e.length?H:z;break}case m.PiiMasking:{const e=r[u.PiiCategories];e?.length||(n[u.PiiCategories]="Select at least one attribute to mask");break}case m.URLTemplatization:{const e=r[u.UrlTemplatizationRulesGroups];(!e?.length||e.some(e=>!e.templatizationRules?.length))&&(n[u.UrlTemplatizationRulesGroups]="Each rule group needs at least one non-blank template");break}case m.ExtractAttribute:{const e=r[u.ExtractAttribute]?.extractions||[],t=s[u.ExtractAttribute]?.extractions||[];if(e.length)if(e.some(e=>{if(!e.targetAttributeName?.trim())return!0;const t=!!e.regex?.trim(),a=!!e.lookupKey?.trim();return a!==!!e.dataFormat||t===a}))n[u.ExtractAttribute]="Each row needs a target attribute name and either a regex or both lookup key and data format";else{const t=new Set;e.some(e=>{const a=e.targetAttributeName?.trim()||"";return!!t.has(a)||(t.add(a),!1)})&&(n[u.ExtractAttribute]="Each new span attribute name must be unique")}else n[u.ExtractAttribute]=t.length?H:z;break}}return n})(s.type,e,i.formData)),i.handleErrorChange(void 0,void 0,t);return{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[i,s]),b=n(()=>({selectedOption:s,onSelectOption:f,loadAction:g,genericForm:i,validateFormData:v}),[s,f,g,i,v]);return e(q.Provider,{value:b,children:r})},W=()=>{const e=r(q);if(!e)throw new Error("useActionFormContext must be used within an ActionFormContextProvider");return e},$={name:""},B=s(null),X=({children:r,defaultExcludeName:s=""})=>{const{dataStreams:i}=f(),[c,u]=t(void 0),[m,p]=t(s),[v,b]=t(void 0),[y,D]=t(null),E=o(null),S=l($),k=a(e=>{S.resetFormData({name:e}),S.handleErrorChange(void 0,void 0,{}),u(void 0),p(e),b(e),D(null),E.current=null},[]),C=a(()=>{const e=d(S.formData),t=(e=>{const t={};return e.name?g(e.name)||(t.name=h.ILLEGAL_K8S_LABEL):t.name=h.FIELD_IS_REQUIRED,t})(e);S.handleErrorChange(void 0,void 0,t);const a=Object.keys(t).length>0?h.REQUIRED_FIELDS:void 0;return u(a),{errorMessage:a,preparedFormData:e}},[S]),A=a(async e=>{const{errorMessage:t,preparedFormData:a}=C();if(t)return;const n=i.find(e=>e.name===a.name&&e.name!==m);if(n)return E.current=e,void D({preparedFormData:a,existingName:n.name,editingName:v});await e(a)},[C,i,m,v]),F=a(async()=>{const e=E.current,t=y?.preparedFormData;E.current=null,D(null),e&&t&&await e(t)},[y]),I=a(()=>{E.current=null,D(null)},[]),w=n(()=>({genericForm:S,loadDataStream:k,editingName:v,validateFormData:C,requestSubmit:A,pendingMerge:y,confirmMerge:F,cancelMerge:I,errorMessage:c,excludeName:m,setExcludeName:p}),[S,k,v,C,A,y,F,I,c,m]);return e(B.Provider,{value:w,children:r})},Y=()=>{const e=r(B);if(!e)throw new Error("useDataStreamFormContext must be used within a DataStreamFormContextProvider");return e},Z={type:"",name:"",currentStreamName:"",disabled:!1,exportedSignals:{logs:!1,metrics:!1,traces:!1,profiles:!1},fields:[]},ee={activeForm:null,onChangeActiveForm:()=>{},loadDestination:()=>{},genericForm:void 0,validateFormData:()=>({isOk:!1,preparedFormData:d(Z)}),unsavedDestinations:[],thisUnsavedDestination:void 0,setUnsavedDestinations:()=>{},addUnsavedDestination:()=>{},updateUnsavedDestination:()=>{},deleteUnsavedDestination:()=>{}},te=s(ee),ae=e=>e.filter(e=>!!e).map(e=>{const{name:t,componentType:a,componentProperties:n,displayName:r,initialValue:s,renderCondition:o}=e,i=a===S.Dropdown,l=D(n,{});return{componentType:a,renderCondition:o,name:t,title:r,value:s,placeholder:l.placeholder||(i?"Select an option":void 0),options:i&&Array.isArray(l.values)?l.values.map(e=>({id:e,label:e})):void 0,...l}}),ne=({children:r})=>{const{selectedStreamName:s}=f(),{items:o}=P().destinationsApi.useDestinations(),[c,u]=t(null),[m,g]=t(ee.unsavedDestinations),S=n(()=>"number"==typeof c?.unsavedIdx?m[c.unsavedIdx]:void 0,[c,m]),k=a((e,t)=>{c&&(g(t=>[...t,{...e,option:c.option}]),u(t?e=>e?{...e,listType:v.UNSAVED,unsavedIdx:m.length}:null:null))},[c,m.length]),C=a((e,t,a)=>{c&&(g(a=>a.map((a,n)=>n===e?{...a,...t,option:c.option}:a)),u(a?e=>e?{...e,listType:v.UNSAVED}:null:null))},[c]),A=a(e=>{g(t=>t.filter((t,a)=>a!==e)),u(null)},[]),F=l({...Z,currentStreamName:s});i(()=>{if(!c)return;if(S)return void F.resetFormData({...S.formData});if(c.listType===v.EXISTS&&c.option.id){const e=o.find(e=>e.id===c.option.id);if(e)return void F.resetFormData({type:e.destinationType.type,name:e.name||e.destinationType.displayName,currentStreamName:s,disabled:!!e.disabled,exportedSignals:{logs:!!e.exportedSignals?.logs,metrics:!!e.exportedSignals?.metrics,traces:!!e.exportedSignals?.traces,profiles:!!e.exportedSignals?.profiles},fields:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})}const e=b(c.option.supportedSignals);F.resetFormData({type:c.option.type,name:c.option.displayName,currentStreamName:s,disabled:!1,exportedSignals:{logs:e.includes(y.Logs),metrics:e.includes(y.Metrics),traces:e.includes(y.Traces),profiles:e.includes(y.Profiles)},fields:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})},[c,S]);const I=a(e=>{F.resetFormData(),F.handleErrorChange(void 0,void 0,{}),u(e?{...e,dynamicFields:e.option?.fields?ae(e.option.fields):[]}:null)},[]),w=a((e,t)=>{let a;for(const n of t){const t=n.items.find(t=>t.type===e.destinationType.type);if(t){a=t;break}}const n=D(e.fields,{}),r={id:e.id,type:e.destinationType.type,displayName:e.name||e.destinationType.displayName,selected:!0,testConnectionSupported:a?.testConnectionSupported??!1,supportedSignals:e.destinationType.supportedSignals,fields:a?a.fields.map(e=>({...e,initialValue:n[e.name]??e.initialValue})):[]},s=ae(r.fields);u({listType:v.EXISTS,option:r,dynamicFields:s})},[]),N=a(()=>{const e=d(F.formData),t={};c?.dynamicFields.forEach(({name:a,required:n})=>{if(n){const n=e.fields.find(e=>e.key===a)?.value;p(n)&&(t[a]=h.FIELD_IS_REQUIRED)}});return E(e.exportedSignals).length||(t.exportedSignals=h.FIELD_IS_REQUIRED),F.handleErrorChange(void 0,void 0,t),{errorMessage:0===Object.keys(t).length?void 0:"Invalid form values",preparedFormData:e}},[F,c]);return e(te.Provider,{value:{activeForm:c,onChangeActiveForm:I,loadDestination:w,genericForm:F,validateFormData:N,unsavedDestinations:m,thisUnsavedDestination:S,setUnsavedDestinations:g,addUnsavedDestination:k,updateUnsavedDestination:C,deleteUnsavedDestination:A},children:r})},re=()=>r(te),se={disabled:!1,ruleName:"",notes:"",sourceScopes:O(),workloads:null,instrumentationLibraries:null,payloadCollection:null,codeAttributes:null,headersCollection:null,customInstrumentations:null},oe=s(null),ie=({children:r,sourceOptions:s=[],namespaceOptions:o=[]})=>{const[i,c]=t(null),u=l(se),m=a(e=>{u.resetFormData(),u.handleErrorChange(void 0,void 0,{}),c(e)},[]),p=a(e=>{var t;u.resetFormData((({ruleName:e,notes:t,disabled:a,sourceScopes:n,instrumentationLibraries:r,payloadCollection:s,codeAttributes:o,headersCollection:i,customInstrumentations:l})=>({ruleName:e||"",notes:t||"",disabled:!!a,sourceScopes:T(n),workloads:null,instrumentationLibraries:r??null,payloadCollection:s??null,codeAttributes:o??null,headersCollection:i??null,customInstrumentations:l??null}))(e)),u.handleErrorChange(void 0,void 0,{}),c((t=e.type,k.find(e=>e.type===t)??null))},[]),h=a(()=>{if(!i)return{errorMessage:"No rule type selected",preparedFormData:d(se)};const e=(e=>{const t=d(e),a={...t,sourceScopes:L(t.sourceScopes)?null:t.sourceScopes,workloads:null};return a.headersCollection?.[C.HeaderKeys]?.length&&(a.headersCollection[C.HeaderKeys]=a.headersCollection[C.HeaderKeys].map(e=>e.trim()).filter(e=>e)),a.customInstrumentations?.[A.Golang]?.length&&(a.customInstrumentations[A.Golang]=a.customInstrumentations[A.Golang].map(e=>new F(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)).filter(e=>{return t=e,!!(t.packageName?.trim()||t.functionName?.trim()||t.receiverName?.trim()||t.receiverMethodName?.trim());var t})),a.customInstrumentations?.[A.Java]?.length&&(a.customInstrumentations[A.Java]=a.customInstrumentations[A.Java].map(e=>new I(e.className,e.methodName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.methodName?.trim());var t})),a})(u.formData),t=((e,t)=>{const a={};switch(e){case w.CodeAttributes:Object.values(t.codeAttributes||{}).some(e=>null!=e)||(a.codeAttributes="Code attributes are required");break;case w.PayloadCollection:Object.values(t.payloadCollection||{}).some(e=>null!=e)||(a.payloadCollection="Payload collection are required");break;case w.HeadersCollection:t.headersCollection?.[C.HeaderKeys]?.length||(a.headersCollection="Header keys are required");break;case w.CustomInstrumentation:{const e=t.customInstrumentations?.[A.Golang]||[],n=t.customInstrumentations?.[A.Java]||[];if(!e.length&&!n.length){a.customInstrumentations="Custom instrumentation are required";break}const r=e.findIndex(e=>!new F(e.packageName,e.functionName,e.receiverName,e.receiverMethodName).Verify());if(-1!==r){a.customInstrumentations=`Golang probe #${r+1} is invalid: provide a package name plus either a function name OR both a receiver name and receiver method name`;break}const s=n.findIndex(e=>!new I(e.className,e.methodName).Verify());if(-1!==s){a.customInstrumentations=`Java probe #${s+1} is invalid: both class name and method name are required`;break}break}}return a})(i.type,e);return u.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[u,i]),f=n(()=>({selectedOption:i,onSelectOption:m,loadRule:p,genericForm:u,validateFormData:h,sourceOptions:s,namespaceOptions:o}),[i,m,p,u,h,s,o]);return e(oe.Provider,{value:f,children:r})},le=()=>{const e=r(oe);if(!e)throw new Error("useRuleFormContext must be used within a RuleFormContextProvider");return e};var de;!function(e){e.Create="create",e.View="view",e.EditAutoNoisy="edit-auto-noisy",e.EditAutoCostReduction="edit-auto-cost-reduction",e.EditAutoHighlyRelevant="edit-auto-highly-relevant"}(de||(de={}));const ce=s(null),ue=["50","25","10","1"];function me(e){const t=String(e);return ue.includes(t)?t:"custom"}const pe=({category:r,sourceOptions:s=[],namespaceOptions:o=[],children:d})=>{const{formData:c,handleFormChange:u,resetFormData:m}=l(G(r)),[p,h]=t(null);i(()=>{m(G(r)),h(null)},[r]);const f=a(e=>{h(null),u(void 0,void 0,{...c,...e})},[c,u]),g=a(()=>{m(G(r)),h(null)},[r,m]),v=n(()=>({formType:de.Create,category:r,formData:c,handleChange:f,resetForm:g,duplicateWarning:p,setDuplicateWarning:h,sourceOptions:s,namespaceOptions:o}),[r,c,f,g,p,s,o]);return e(ce.Provider,{value:v,children:d})},he=({data:r,defaultEditMode:s,sourceOptions:d=[],namespaceOptions:c=[],children:u})=>{const[m,p]=t(!1),{formData:h,handleFormChange:f,resetFormData:g}=l(void 0),v=o(null),[b,y]=t(null);i(()=>{r!==v.current&&(v.current=r,r&&s?(g(K(r)),y(null),p(!0)):(p(!1),y(null)))},[r,s]);const D=a(e=>{y(null),f(void 0,void 0,{...h,...e})},[h,f]),E=a(()=>{r&&(g(K(r)),y(null),p(!0))},[r,g]),S=a(()=>{p(!1),y(null)},[]),k=n(()=>({formType:de.View,data:r,isEditing:m,formData:h,handleChange:D,handleEdit:E,handleCancelEdit:S,duplicateWarning:b,setDuplicateWarning:y,sourceOptions:d,namespaceOptions:c}),[r,m,h,D,E,S,b,d,c]);return e(ce.Provider,{value:k,children:u})};function fe(e){const[a,r]=t(()=>0===e?"all":"sample"),[s,o]=t(()=>me(e)),[l,d]=t(()=>"custom"===me(e)?String(e):"");i(()=>{r(0===e?"all":"sample");const t=me(e);o(t),d("custom"===t?String(e):"")},[e]);const c=n(()=>"all"===a?0:"custom"===s?Number(l)||0:Number(s),[a,s,l]);return{percentageMode:a,setPercentageMode:r,percentagePreset:s,setPercentagePreset:o,customPercentage:l,setCustomPercentage:d,resolvedPercentage:c}}const ge=({enabled:a,keepPercentage:r,children:s})=>{const[o,l]=t(a),d=fe(r);i(()=>{l(a)},[a]);const c=n(()=>j({enabled:o,keepPercentage:d.resolvedPercentage}),[o,d.resolvedPercentage]),u=n(()=>({formType:de.EditAutoNoisy,localEnabled:o,setLocalEnabled:l,...d,summary:c}),[o,d,c]);return e(ce.Provider,{value:u,children:s})},ve=({enabled:a,dropPercentage:r,children:s})=>{const[o,l]=t(a),d=fe(r);i(()=>{l(a)},[a]);const c=n(()=>U(o?{disabled:!1,percentageAtMost:d.resolvedPercentage}:null),[o,d.resolvedPercentage]),u=n(()=>({formType:de.EditAutoCostReduction,localEnabled:o,setLocalEnabled:l,...d,summary:c}),[o,d,c]);return e(ce.Provider,{value:u,children:s})},be=({enabled:a,children:r})=>{const[s,o]=t(a);i(()=>{o(a)},[a]);const l=n(()=>M(s?{disabled:!1}:null),[s]),d=n(()=>({formType:de.EditAutoHighlyRelevant,localEnabled:s,setLocalEnabled:o,summary:l}),[s,l]);return e(ce.Provider,{value:d,children:r})},ye=t=>{switch(t.formType){case de.Create:return e(pe,{...t});case de.View:return e(he,{...t});case de.EditAutoNoisy:return e(ge,{...t});case de.EditAutoCostReduction:return e(ve,{...t});case de.EditAutoHighlyRelevant:return e(be,{...t})}};function De(e){const t=r(ce);if(!t)throw new Error("useSamplingRulesFormContext must be used within a SamplingRulesFormProvider");if(e&&t.formType!==e)throw new Error(`Expected formType "${e}" but found "${t.formType}"`);return t}const Ee={otelServiceName:"",currentStreamName:""},Se=s(null),ke=({children:r})=>{const[s,o]=t(void 0),i=l(Ee),c=a(e=>{i.resetFormData((({serviceName:e,id:t})=>({otelServiceName:e||t.name||"",currentStreamName:""}))(e)),i.handleErrorChange(void 0,void 0,{}),o(void 0)},[]),u=a(()=>{const e=d(i.formData);return i.handleErrorChange(void 0,void 0,{}),o(void 0),{errorMessage:void 0,preparedFormData:e}},[i]),m=n(()=>({loadSource:c,genericForm:i,validateFormData:u,errorMessage:s}),[c,i,u,s]);return e(Se.Provider,{value:m,children:r})},Ce=()=>{const e=r(Se);if(!e)throw new Error("useSourceEditFormContext must be used within a SourceEditFormContextProvider");return e},Ae=new Set([N.StaticPod]),Fe=e=>{const t=e.workloads.filter(({selected:e})=>e).length,a=e.workloads.length;return{selectedCount:t,isAllSourced:t>0&&t===a,isSomeSourced:t>0&&t<a,isFutureApps:e.selected||!1}},Ie=(e,t,a)=>{if(t&&!e.name.toLowerCase().includes(t.toLowerCase()))return!1;if(a.showOnlySelected){const{isAllSourced:t,isSomeSourced:a,isFutureApps:n}=Fe(e);return t||a||n}return!0},we=(e,t,a)=>!(t&&!e.name.toLowerCase().includes(t.toLowerCase()))&&(!a.showOnlySelected||e.selected),Ne=s({snapshots:null,setSnapshots:()=>{},isFetching:!1,setIsFetching:()=>{},formData:[],handleSourceChange:()=>{},handleSelectAll:()=>{},formDiff:{},isFormDirty:!1}),xe=(e,t,a)=>{const n=[];return t.workloads.forEach(r=>{const s=e?.workloads.find(e=>e.name===r.name&&e.kind===r.kind);r.selected!==s?.selected&&n.push({namespace:t.name,name:r.name,kind:r.kind,selected:r.selected||!1,currentStreamName:a})}),n},Re=({children:r,selectedConnectionIds:s,initialInputs:o})=>{const{tier:l}=V(),c=l===x.Onprem,{capabilities:u}=P(),m=u.canInstrumentNamespaces,{selectedStreamName:p}=f(),[h,g]=t(!1),[v,b]=t(null),[y,D]=t([]);i(()=>{v&&D(e=>{const t=((e,t)=>d(((e,t)=>e.clusters.filter(({clusterId:e})=>!t||t.includes(e)))(e,t)))(v,s);return t.map(t=>{const a=e?.find(e=>e.clusterId===t.clusterId),n=a??t;if(o?.[t.clusterId]){const e=o[t.clusterId],a=d(n);return e.forEach(e=>{const t=a.namespaces.find(t=>t.name===e.namespace);if(t)if(e.name&&e.kind){const a=t.workloads.find(t=>t.name===e.name&&t.kind===e.kind);a&&(a.selected=e.selected)}else t.selected=e.selected,e.selected&&t.workloads.forEach(e=>{Ae.has(e.kind)&&!c||(e.selected=!0)})}),a}return n})})},[v,s,o]);const{formDiff:E,isFormDirty:S}=n(()=>{const e=((e,t,a,n)=>{const r={};return e.forEach(e=>{e.namespaces.forEach(s=>{const o=t.find(t=>t.clusterId===e.clusterId)?.namespaces.find(e=>e.name===s.name);if(!n){const t=xe(o,s,a);return void(t.length>0&&(r[e.clusterId]||(r[e.clusterId]=[]),r[e.clusterId].push(...t)))}const i=s.selected||!1;if(i!==o?.selected)r[e.clusterId]||(r[e.clusterId]=[]),r[e.clusterId].push({namespace:s.name,selected:i,currentStreamName:a}),i?r[e.clusterId]=r[e.clusterId].filter(e=>e.namespace!==s.name||e.namespace===s.name&&(!e.name||!e.kind)):s.workloads.forEach(t=>{t.selected&&r[e.clusterId].push({namespace:s.name,name:t.name,kind:t.kind,selected:!0,currentStreamName:a})});else{const t=xe(o,s,a);t.length>0&&(r[e.clusterId]||(r[e.clusterId]=[]),r[e.clusterId].push(...t))}})}),r})(y,v?.clusters||[],p,m);return{formDiff:e,isFormDirty:Object.keys(e).length>0}},[y,v,p,m]),k=a(e=>!c&&Ae.has(e),[c]),C=a(({clusterId:e,workloadId:t,selected:a,auto:n})=>{D(r=>{const s=d(r),o=s.findIndex(t=>t.clusterId===e);if(-1===o)return s;const i=s[o].namespaces.findIndex(e=>e.name===t.namespace);if(-1===i)return s;if(t.kind&&t.name){const e=s[o].namespaces[i].workloads.findIndex(e=>e.name===t.name&&e.kind===t.kind);if(-1===e)return s;const n="boolean"==typeof a?a:!s[o].namespaces[i].workloads[e].selected;if(s[o].namespaces[i].workloads[e].selected=n,m)if(n){s[o].namespaces[i].workloads.filter(e=>!k(e.kind)).every(e=>e.selected)&&(s[o].namespaces[i].selected=!0)}else s[o].namespaces[i].selected=!1}else if(m){const e="boolean"==typeof n?n:!s[o].namespaces[i].selected;s[o].namespaces[i].selected=e,e?s[o].namespaces[i].workloads.forEach(e=>{k(e.kind)||(e.selected=!0)}):"boolean"!=typeof a||a||s[o].namespaces[i].workloads.forEach(e=>{e.selected=!1})}else{const e="boolean"==typeof a?a:"boolean"!=typeof n||n;s[o].namespaces[i].workloads.forEach(t=>{e&&k(t.kind)||(t.selected=e)})}return s})},[k,m]),A=a(({clusterId:e,namespaceName:t,boolean:a,searchText:n="",searchBy:r="",filters:s})=>{D(o=>{const i=d(o),l=r===R.Namespace?n:"",c=r===R.Source?n:"",u=!!l||!!c||!!s?.showOnlySelected;return i.forEach((n,r)=>{e&&n.clusterId!==e||n.namespaces.forEach(({name:e,workloads:n},o)=>{if(!t||e===t)if(u)if(t){if(n.forEach((e,t)=>{a&&k(e.kind)||we(e,c,s||{showOnlySelected:!1})&&(i[r].namespaces[o].workloads[t].selected=a)}),m){const e=i[r].namespaces[o].workloads.filter(e=>!k(e.kind)).every(e=>e.selected);i[r].namespaces[o].selected=e}}else{if(!Ie(i[r].namespaces[o],l,s||{showOnlySelected:!1}))return;m&&(i[r].namespaces[o].selected=a),n.forEach((e,t)=>{a&&k(e.kind)||(i[r].namespaces[o].workloads[t].selected=a)})}else m&&(i[r].namespaces[o].selected=a),n.forEach((e,t)=>{a&&k(e.kind)||(i[r].namespaces[o].workloads[t].selected=a)})})}),i})},[k,m]);return e(Ne.Provider,{value:{snapshots:v,setSnapshots:b,isFetching:h,setIsFetching:g,formData:y,handleSourceChange:C,handleSelectAll:A,formDiff:E,isFormDirty:S},children:r})},Pe=()=>r(Ne);export{Q as A,X as D,Ae as E,ie as R,de as S,ne as a,ye as b,ke as c,Re as d,Y as e,re as f,le as g,De as h,Ce as i,Pe as j,we as k,Ie as l,Fe as m,W as u};
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useState as t,useCallback as a,useMemo as n,useContext as r,createContext as s,useRef as o,useEffect as i}from"react";import{d as l,e as d,A as c,f as u,g as m,i as p,F as h,h as f,j as g,D as v,m as b,S as y,s as D,k as E,l as S,I as k,H as C,C as A,G as F,J as I,n as w,K as N,T as x,E as R}from"./ui-components-BmIux5o5.js";import{d as P}from"./use-odigos-api-hslZLdix.js";import{n as T,m as O,i as L,b as M,a as U,d as j,v as K,g as G,u as V}from"./helpers-BlFl20R2.js";const _={type:"",disabled:!1,name:"",notes:"",signals:[],fields:{}},q=s(null),H="All row fields are required",z="At least one row is required",J=(e,t)=>!!e&&t.every(t=>{const a=e[t];return Array.isArray(a)?a.length>0:!("string"==typeof(n=a)?!n.trim():p(n));var n}),Q=({children:r})=>{const[s,o]=t(null),i=l(_),f=a(e=>{i.resetFormData(),i.handleErrorChange(void 0,void 0,{}),e?.type&&i.handleFormChange("type",e.type),o(e)},[]),g=a(e=>{var t;i.resetFormData((({type:e,name:t,notes:a,disabled:n,signals:r,fields:s})=>({type:e,name:t||"",notes:a||"",disabled:!!n,signals:r??[],fields:s??{}}))(e)),i.handleErrorChange(void 0,void 0,{}),o((t=e.type,c.find(e=>e.type===t)??null))},[]),v=a(()=>{if(!s)return{errorMessage:"No action type selected",preparedFormData:d(_)};const e=(e=>{const t=d(e),a=t.fields||{},n=a[u.UrlTemplatizationRulesGroups];n?.length&&(a[u.UrlTemplatizationRulesGroups]=n.map(e=>({...e,templatizationRules:(e.templatizationRules||[]).filter(e=>!!e.template?.trim())})));const r=a[u.AttributeNamesToDelete];r?.length&&(a[u.AttributeNamesToDelete]=r.filter(e=>!!e?.trim()));const s=a[u.Renames];s&&(a[u.Renames]=Object.fromEntries(Object.entries(s).filter(([e,t])=>!!e?.trim()&&!!t?.trim())));const o=a[u.ExtractAttribute];return o?.extractions?.length&&(a[u.ExtractAttribute]={extractions:o.extractions.map(e=>({targetAttributeName:e.targetAttributeName?.trim()||"",lookupKey:e.lookupKey?.trim()||"",dataFormat:e.dataFormat||"",regex:e.regex?.trim()||""})).filter(e=>!!(e.targetAttributeName||e.lookupKey||e.dataFormat||e.regex))}),t.fields=a,t})(i.formData),t={};p(e.signals)&&(t.signals=h.FIELD_IS_REQUIRED),s.type&&Object.assign(t,((e,t,a)=>{const n={},r=t.fields||{},s=a.fields||{};switch(e){case m.K8sAttributes:{const e=!(r[u.CollectContainerAttributes]||r[u.CollectReplicaSetAttributes]||r[u.CollectWorkloadId]||r[u.CollectClusterId]),t=!r[u.LabelsAttributes]?.length,a=!r[u.AnnotationsAttributes]?.length;e&&t&&a&&(n[u.CollectContainerAttributes]="Enable at least one option or add a label/annotation row");const s=r[u.LabelsAttributes];s?.some(e=>!J(e,["labelKey","attributeKey","fromSources"]))&&(n[u.LabelsAttributes]=H);const o=r[u.AnnotationsAttributes];o?.some(e=>!J(e,["annotationKey","attributeKey","fromSources"]))&&(n[u.AnnotationsAttributes]=H);break}case m.AddClusterInfo:{const e=r[u.ClusterAttributes];e?.length?e.some(e=>!J(e,["attributeName","attributeStringValue"]))&&(n[u.ClusterAttributes]=H):n[u.ClusterAttributes]=z;break}case m.DeleteAttributes:{const e=s[u.AttributeNamesToDelete]||[],t=r[u.AttributeNamesToDelete]||[];t.length?e.length>t.length&&(n[u.AttributeNamesToDelete]=H):n[u.AttributeNamesToDelete]=e.length?H:z;break}case m.RenameAttributes:{const e=Object.entries(s[u.Renames]||{}),t=Object.entries(r[u.Renames]||{}),a=e.some(([e,t])=>!e?.trim()||!t?.trim());t.length?a&&(n[u.Renames]=H):n[u.Renames]=e.length?H:z;break}case m.PiiMasking:{const e=r[u.PiiCategories];e?.length||(n[u.PiiCategories]="Select at least one attribute to mask");break}case m.URLTemplatization:{const e=r[u.UrlTemplatizationRulesGroups];(!e?.length||e.some(e=>!e.templatizationRules?.length))&&(n[u.UrlTemplatizationRulesGroups]="Each rule group needs at least one non-blank template");break}case m.ExtractAttribute:{const e=r[u.ExtractAttribute]?.extractions||[],t=s[u.ExtractAttribute]?.extractions||[];if(e.length)if(e.some(e=>{if(!e.targetAttributeName?.trim())return!0;const t=!!e.regex?.trim(),a=!!e.lookupKey?.trim();return a!==!!e.dataFormat||t===a}))n[u.ExtractAttribute]="Each row needs a target attribute name and either a regex or both lookup key and data format";else{const t=new Set;e.some(e=>{const a=e.targetAttributeName?.trim()||"";return!!t.has(a)||(t.add(a),!1)})&&(n[u.ExtractAttribute]="Each new span attribute name must be unique")}else n[u.ExtractAttribute]=t.length?H:z;break}}return n})(s.type,e,i.formData)),i.handleErrorChange(void 0,void 0,t);return{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[i,s]),b=n(()=>({selectedOption:s,onSelectOption:f,loadAction:g,genericForm:i,validateFormData:v}),[s,f,g,i,v]);return e(q.Provider,{value:b,children:r})},W=()=>{const e=r(q);if(!e)throw new Error("useActionFormContext must be used within an ActionFormContextProvider");return e},$={name:""},B=s(null),X=({children:r,defaultExcludeName:s=""})=>{const{dataStreams:i}=f(),[c,u]=t(void 0),[m,p]=t(s),[v,b]=t(void 0),[y,D]=t(null),E=o(null),S=l($),k=a(e=>{S.resetFormData({name:e}),S.handleErrorChange(void 0,void 0,{}),u(void 0),p(e),b(e),D(null),E.current=null},[]),C=a(()=>{const e=d(S.formData),t=(e=>{const t={};return e.name?g(e.name)||(t.name=h.ILLEGAL_K8S_LABEL):t.name=h.FIELD_IS_REQUIRED,t})(e);S.handleErrorChange(void 0,void 0,t);const a=Object.keys(t).length>0?h.REQUIRED_FIELDS:void 0;return u(a),{errorMessage:a,preparedFormData:e}},[S]),A=a(async e=>{const{errorMessage:t,preparedFormData:a}=C();if(t)return;const n=i.find(e=>e.name===a.name&&e.name!==m);if(n)return E.current=e,void D({preparedFormData:a,existingName:n.name,editingName:v});await e(a)},[C,i,m,v]),F=a(async()=>{const e=E.current,t=y?.preparedFormData;E.current=null,D(null),e&&t&&await e(t)},[y]),I=a(()=>{E.current=null,D(null)},[]),w=n(()=>({genericForm:S,loadDataStream:k,editingName:v,validateFormData:C,requestSubmit:A,pendingMerge:y,confirmMerge:F,cancelMerge:I,errorMessage:c,excludeName:m,setExcludeName:p}),[S,k,v,C,A,y,F,I,c,m]);return e(B.Provider,{value:w,children:r})},Y=()=>{const e=r(B);if(!e)throw new Error("useDataStreamFormContext must be used within a DataStreamFormContextProvider");return e},Z={type:"",name:"",currentStreamName:"",disabled:!1,exportedSignals:{logs:!1,metrics:!1,traces:!1,profiles:!1},fields:[]},ee={activeForm:null,onChangeActiveForm:()=>{},loadDestination:()=>{},genericForm:void 0,validateFormData:()=>({isOk:!1,preparedFormData:d(Z)}),unsavedDestinations:[],thisUnsavedDestination:void 0,setUnsavedDestinations:()=>{},addUnsavedDestination:()=>{},updateUnsavedDestination:()=>{},deleteUnsavedDestination:()=>{}},te=s(ee),ae=e=>e.filter(e=>!!e).map(e=>{const{name:t,componentType:a,componentProperties:n,displayName:r,initialValue:s,renderCondition:o}=e,i=a===S.Dropdown,l=D(n,{});return{componentType:a,renderCondition:o,name:t,title:r,value:s,placeholder:l.placeholder||(i?"Select an option":void 0),options:i&&Array.isArray(l.values)?l.values.map(e=>({id:e,label:e})):void 0,...l}}),ne=({children:r})=>{const{selectedStreamName:s}=f(),{items:o}=P().destinationsApi.useDestinations(),[c,u]=t(null),[m,g]=t(ee.unsavedDestinations),S=n(()=>"number"==typeof c?.unsavedIdx?m[c.unsavedIdx]:void 0,[c,m]),k=a((e,t)=>{c&&(g(t=>[...t,{...e,option:c.option}]),u(t?e=>e?{...e,listType:v.UNSAVED,unsavedIdx:m.length}:null:null))},[c,m.length]),C=a((e,t,a)=>{c&&(g(a=>a.map((a,n)=>n===e?{...a,...t,option:c.option}:a)),u(a?e=>e?{...e,listType:v.UNSAVED}:null:null))},[c]),A=a(e=>{g(t=>t.filter((t,a)=>a!==e)),u(null)},[]),F=l({...Z,currentStreamName:s});i(()=>{if(!c)return;if(S)return void F.resetFormData({...S.formData});if(c.listType===v.EXISTS&&c.option.id){const e=o.find(e=>e.id===c.option.id);if(e)return void F.resetFormData({type:e.destinationType.type,name:e.name||e.destinationType.displayName,currentStreamName:s,disabled:!!e.disabled,exportedSignals:{logs:!!e.exportedSignals?.logs,metrics:!!e.exportedSignals?.metrics,traces:!!e.exportedSignals?.traces,profiles:!!e.exportedSignals?.profiles},fields:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})}const e=b(c.option.supportedSignals);F.resetFormData({type:c.option.type,name:c.option.displayName,currentStreamName:s,disabled:!1,exportedSignals:{logs:e.includes(y.Logs),metrics:e.includes(y.Metrics),traces:e.includes(y.Traces),profiles:e.includes(y.Profiles)},fields:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})},[c,S]);const I=a(e=>{F.resetFormData(),F.handleErrorChange(void 0,void 0,{}),u(e?{...e,dynamicFields:e.option?.fields?ae(e.option.fields):[]}:null)},[]),w=a((e,t)=>{let a;for(const n of t){const t=n.items.find(t=>t.type===e.destinationType.type);if(t){a=t;break}}const n=D(e.fields,{}),r={id:e.id,type:e.destinationType.type,displayName:e.name||e.destinationType.displayName,selected:!0,testConnectionSupported:a?.testConnectionSupported??!1,supportedSignals:e.destinationType.supportedSignals,fields:a?a.fields.map(e=>({...e,initialValue:n[e.name]??e.initialValue})):[]},s=ae(r.fields);u({listType:v.EXISTS,option:r,dynamicFields:s})},[]),N=a(()=>{const e=d(F.formData),t={};c?.dynamicFields.forEach(({name:a,required:n})=>{if(n){const n=e.fields.find(e=>e.key===a)?.value;p(n)&&(t[a]=h.FIELD_IS_REQUIRED)}});return E(e.exportedSignals).length||(t.exportedSignals=h.FIELD_IS_REQUIRED),F.handleErrorChange(void 0,void 0,t),{errorMessage:0===Object.keys(t).length?void 0:"Invalid form values",preparedFormData:e}},[F,c]);return e(te.Provider,{value:{activeForm:c,onChangeActiveForm:I,loadDestination:w,genericForm:F,validateFormData:N,unsavedDestinations:m,thisUnsavedDestination:S,setUnsavedDestinations:g,addUnsavedDestination:k,updateUnsavedDestination:C,deleteUnsavedDestination:A},children:r})},re=()=>r(te),se={disabled:!1,ruleName:"",notes:"",sourceScopes:O(),workloads:null,instrumentationLibraries:null,payloadCollection:null,codeAttributes:null,headersCollection:null,customInstrumentations:null},oe=s(null),ie=({children:r,sourceOptions:s=[],namespaceOptions:o=[]})=>{const[i,c]=t(null),u=l(se),m=a(e=>{u.resetFormData(),u.handleErrorChange(void 0,void 0,{}),c(e)},[]),p=a(e=>{var t;u.resetFormData((({ruleName:e,notes:t,disabled:a,sourceScopes:n,instrumentationLibraries:r,payloadCollection:s,codeAttributes:o,headersCollection:i,customInstrumentations:l})=>({ruleName:e||"",notes:t||"",disabled:!!a,sourceScopes:T(n),workloads:null,instrumentationLibraries:r??null,payloadCollection:s??null,codeAttributes:o??null,headersCollection:i??null,customInstrumentations:l??null}))(e)),u.handleErrorChange(void 0,void 0,{}),c((t=e.type,k.find(e=>e.type===t)??null))},[]),h=a(()=>{if(!i)return{errorMessage:"No rule type selected",preparedFormData:d(se)};const e=(e=>{const t=d(e),a={...t,sourceScopes:L(t.sourceScopes)?null:t.sourceScopes,workloads:null};return a.headersCollection?.[C.HeaderKeys]?.length&&(a.headersCollection[C.HeaderKeys]=a.headersCollection[C.HeaderKeys].map(e=>e.trim()).filter(e=>e)),a.customInstrumentations?.[A.Golang]?.length&&(a.customInstrumentations[A.Golang]=a.customInstrumentations[A.Golang].map(e=>new F(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)).filter(e=>{return t=e,!!(t.packageName?.trim()||t.functionName?.trim()||t.receiverName?.trim()||t.receiverMethodName?.trim());var t})),a.customInstrumentations?.[A.Java]?.length&&(a.customInstrumentations[A.Java]=a.customInstrumentations[A.Java].map(e=>new I(e.className,e.methodName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.methodName?.trim());var t})),a})(u.formData),t=((e,t)=>{const a={};switch(e){case w.CodeAttributes:Object.values(t.codeAttributes||{}).some(e=>null!=e)||(a.codeAttributes="Code attributes are required");break;case w.PayloadCollection:Object.values(t.payloadCollection||{}).some(e=>null!=e)||(a.payloadCollection="Payload collection are required");break;case w.HeadersCollection:t.headersCollection?.[C.HeaderKeys]?.length||(a.headersCollection="Header keys are required");break;case w.CustomInstrumentation:{const e=t.customInstrumentations?.[A.Golang]||[],n=t.customInstrumentations?.[A.Java]||[];if(!e.length&&!n.length){a.customInstrumentations="Custom instrumentation are required";break}const r=e.findIndex(e=>!new F(e.packageName,e.functionName,e.receiverName,e.receiverMethodName).Verify());if(-1!==r){a.customInstrumentations=`Golang probe #${r+1} is invalid: provide a package name plus either a function name OR both a receiver name and receiver method name`;break}const s=n.findIndex(e=>!new I(e.className,e.methodName).Verify());if(-1!==s){a.customInstrumentations=`Java probe #${s+1} is invalid: both class name and method name are required`;break}break}}return a})(i.type,e);return u.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[u,i]),f=n(()=>({selectedOption:i,onSelectOption:m,loadRule:p,genericForm:u,validateFormData:h,sourceOptions:s,namespaceOptions:o}),[i,m,p,u,h,s,o]);return e(oe.Provider,{value:f,children:r})},le=()=>{const e=r(oe);if(!e)throw new Error("useRuleFormContext must be used within a RuleFormContextProvider");return e};var de;!function(e){e.Create="create",e.View="view",e.EditAutoNoisy="edit-auto-noisy",e.EditAutoCostReduction="edit-auto-cost-reduction",e.EditAutoHighlyRelevant="edit-auto-highly-relevant"}(de||(de={}));const ce=s(null),ue=["50","25","10","1"];function me(e){const t=String(e);return ue.includes(t)?t:"custom"}const pe=({category:r,sourceOptions:s=[],namespaceOptions:o=[],children:d})=>{const{formData:c,handleFormChange:u,resetFormData:m}=l(G(r)),[p,h]=t(null);i(()=>{m(G(r)),h(null)},[r]);const f=a(e=>{h(null),u(void 0,void 0,{...c,...e})},[c,u]),g=a(()=>{m(G(r)),h(null)},[r,m]),v=n(()=>({formType:de.Create,category:r,formData:c,handleChange:f,resetForm:g,duplicateWarning:p,setDuplicateWarning:h,sourceOptions:s,namespaceOptions:o}),[r,c,f,g,p,s,o]);return e(ce.Provider,{value:v,children:d})},he=({data:r,defaultEditMode:s,sourceOptions:d=[],namespaceOptions:c=[],children:u})=>{const[m,p]=t(!1),{formData:h,handleFormChange:f,resetFormData:g}=l(void 0),v=o(null),[b,y]=t(null);i(()=>{r!==v.current&&(v.current=r,r&&s?(g(K(r)),y(null),p(!0)):(p(!1),y(null)))},[r,s]);const D=a(e=>{y(null),f(void 0,void 0,{...h,...e})},[h,f]),E=a(()=>{r&&(g(K(r)),y(null),p(!0))},[r,g]),S=a(()=>{p(!1),y(null)},[]),k=n(()=>({formType:de.View,data:r,isEditing:m,formData:h,handleChange:D,handleEdit:E,handleCancelEdit:S,duplicateWarning:b,setDuplicateWarning:y,sourceOptions:d,namespaceOptions:c}),[r,m,h,D,E,S,b,d,c]);return e(ce.Provider,{value:k,children:u})};function fe(e){const[a,r]=t(()=>0===e?"all":"sample"),[s,o]=t(()=>me(e)),[l,d]=t(()=>"custom"===me(e)?String(e):"");i(()=>{r(0===e?"all":"sample");const t=me(e);o(t),d("custom"===t?String(e):"")},[e]);const c=n(()=>"all"===a?0:"custom"===s?Number(l)||0:Number(s),[a,s,l]);return{percentageMode:a,setPercentageMode:r,percentagePreset:s,setPercentagePreset:o,customPercentage:l,setCustomPercentage:d,resolvedPercentage:c}}const ge=({enabled:a,keepPercentage:r,children:s})=>{const[o,l]=t(a),d=fe(r);i(()=>{l(a)},[a]);const c=n(()=>j({enabled:o,keepPercentage:d.resolvedPercentage}),[o,d.resolvedPercentage]),u=n(()=>({formType:de.EditAutoNoisy,localEnabled:o,setLocalEnabled:l,...d,summary:c}),[o,d,c]);return e(ce.Provider,{value:u,children:s})},ve=({enabled:a,dropPercentage:r,children:s})=>{const[o,l]=t(a),d=fe(r);i(()=>{l(a)},[a]);const c=n(()=>U(o?{disabled:!1,percentageAtMost:d.resolvedPercentage}:null),[o,d.resolvedPercentage]),u=n(()=>({formType:de.EditAutoCostReduction,localEnabled:o,setLocalEnabled:l,...d,summary:c}),[o,d,c]);return e(ce.Provider,{value:u,children:s})},be=({enabled:a,children:r})=>{const[s,o]=t(a);i(()=>{o(a)},[a]);const l=n(()=>M(s?{disabled:!1}:null),[s]),d=n(()=>({formType:de.EditAutoHighlyRelevant,localEnabled:s,setLocalEnabled:o,summary:l}),[s,l]);return e(ce.Provider,{value:d,children:r})},ye=t=>{switch(t.formType){case de.Create:return e(pe,{...t});case de.View:return e(he,{...t});case de.EditAutoNoisy:return e(ge,{...t});case de.EditAutoCostReduction:return e(ve,{...t});case de.EditAutoHighlyRelevant:return e(be,{...t})}};function De(e){const t=r(ce);if(!t)throw new Error("useSamplingRulesFormContext must be used within a SamplingRulesFormProvider");if(e&&t.formType!==e)throw new Error(`Expected formType "${e}" but found "${t.formType}"`);return t}const Ee={otelServiceName:"",currentStreamName:""},Se=s(null),ke=({children:r})=>{const[s,o]=t(void 0),i=l(Ee),c=a(e=>{i.resetFormData((({serviceName:e,id:t})=>({otelServiceName:e||t.name||"",currentStreamName:""}))(e)),i.handleErrorChange(void 0,void 0,{}),o(void 0)},[]),u=a(()=>{const e=d(i.formData);return i.handleErrorChange(void 0,void 0,{}),o(void 0),{errorMessage:void 0,preparedFormData:e}},[i]),m=n(()=>({loadSource:c,genericForm:i,validateFormData:u,errorMessage:s}),[c,i,u,s]);return e(Se.Provider,{value:m,children:r})},Ce=()=>{const e=r(Se);if(!e)throw new Error("useSourceEditFormContext must be used within a SourceEditFormContextProvider");return e},Ae=new Set([N.StaticPod]),Fe=e=>{const t=e.workloads.filter(({selected:e})=>e).length,a=e.workloads.length;return{selectedCount:t,isAllSourced:t>0&&t===a,isSomeSourced:t>0&&t<a,isFutureApps:e.selected||!1}},Ie=(e,t,a)=>{if(t&&!e.name.toLowerCase().includes(t.toLowerCase()))return!1;if(a.showOnlySelected){const{isAllSourced:t,isSomeSourced:a,isFutureApps:n}=Fe(e);return t||a||n}return!0},we=(e,t,a)=>!(t&&!e.name.toLowerCase().includes(t.toLowerCase()))&&(!a.showOnlySelected||e.selected),Ne=s({snapshots:null,setSnapshots:()=>{},isFetching:!1,setIsFetching:()=>{},formData:[],handleSourceChange:()=>{},handleSelectAll:()=>{},formDiff:{},isFormDirty:!1}),xe=(e,t,a)=>{const n=[];return t.workloads.forEach(r=>{const s=e?.workloads.find(e=>e.name===r.name&&e.kind===r.kind);r.selected!==s?.selected&&n.push({namespace:t.name,name:r.name,kind:r.kind,selected:r.selected||!1,currentStreamName:a})}),n},Re=({children:r,selectedConnectionIds:s,initialInputs:o})=>{const{tier:l}=V(),c=l===x.Onprem,{capabilities:u}=P(),m=u.canInstrumentNamespaces,{selectedStreamName:p}=f(),[h,g]=t(!1),[v,b]=t(null),[y,D]=t([]);i(()=>{v&&D(e=>{const t=((e,t)=>d(((e,t)=>e.clusters.filter(({clusterId:e})=>!t||t.includes(e)))(e,t)))(v,s);return t.map(t=>{const a=e?.find(e=>e.clusterId===t.clusterId),n=a??t;if(o?.[t.clusterId]){const e=o[t.clusterId],a=d(n);return e.forEach(e=>{const t=a.namespaces.find(t=>t.name===e.namespace);if(t)if(e.name&&e.kind){const a=t.workloads.find(t=>t.name===e.name&&t.kind===e.kind);a&&(a.selected=e.selected)}else t.selected=e.selected,e.selected&&t.workloads.forEach(e=>{Ae.has(e.kind)&&!c||(e.selected=!0)})}),a}return n})})},[v,s,o]);const{formDiff:E,isFormDirty:S}=n(()=>{const e=((e,t,a,n)=>{const r={};return e.forEach(e=>{e.namespaces.forEach(s=>{const o=t.find(t=>t.clusterId===e.clusterId)?.namespaces.find(e=>e.name===s.name);if(!n){const t=xe(o,s,a);return void(t.length>0&&(r[e.clusterId]||(r[e.clusterId]=[]),r[e.clusterId].push(...t)))}const i=s.selected||!1;if(i!==o?.selected)r[e.clusterId]||(r[e.clusterId]=[]),r[e.clusterId].push({namespace:s.name,selected:i,currentStreamName:a}),i?r[e.clusterId]=r[e.clusterId].filter(e=>e.namespace!==s.name||e.namespace===s.name&&(!e.name||!e.kind)):s.workloads.forEach(t=>{t.selected&&r[e.clusterId].push({namespace:s.name,name:t.name,kind:t.kind,selected:!0,currentStreamName:a})});else{const t=xe(o,s,a);t.length>0&&(r[e.clusterId]||(r[e.clusterId]=[]),r[e.clusterId].push(...t))}})}),r})(y,v?.clusters||[],p,m);return{formDiff:e,isFormDirty:Object.keys(e).length>0}},[y,v,p,m]),k=a(e=>!c&&Ae.has(e),[c]),C=a(({clusterId:e,workloadId:t,selected:a,auto:n})=>{D(r=>{const s=d(r),o=s.findIndex(t=>t.clusterId===e);if(-1===o)return s;const i=s[o].namespaces.findIndex(e=>e.name===t.namespace);if(-1===i)return s;if(t.kind&&t.name){const e=s[o].namespaces[i].workloads.findIndex(e=>e.name===t.name&&e.kind===t.kind);if(-1===e)return s;const n="boolean"==typeof a?a:!s[o].namespaces[i].workloads[e].selected;if(s[o].namespaces[i].workloads[e].selected=n,m)if(n){s[o].namespaces[i].workloads.filter(e=>!k(e.kind)).every(e=>e.selected)&&(s[o].namespaces[i].selected=!0)}else s[o].namespaces[i].selected=!1}else if(m){const e="boolean"==typeof n?n:!s[o].namespaces[i].selected;s[o].namespaces[i].selected=e,e?s[o].namespaces[i].workloads.forEach(e=>{k(e.kind)||(e.selected=!0)}):"boolean"!=typeof a||a||s[o].namespaces[i].workloads.forEach(e=>{e.selected=!1})}else{const e="boolean"==typeof a?a:"boolean"!=typeof n||n;s[o].namespaces[i].workloads.forEach(t=>{e&&k(t.kind)||(t.selected=e)})}return s})},[k,m]),A=a(({clusterId:e,namespaceName:t,boolean:a,searchText:n="",searchBy:r="",filters:s})=>{D(o=>{const i=d(o),l=r===R.Namespace?n:"",c=r===R.Source?n:"",u=!!l||!!c||!!s?.showOnlySelected;return i.forEach((n,r)=>{e&&n.clusterId!==e||n.namespaces.forEach(({name:e,workloads:n},o)=>{if(!t||e===t)if(u)if(t){if(n.forEach((e,t)=>{a&&k(e.kind)||we(e,c,s||{showOnlySelected:!1})&&(i[r].namespaces[o].workloads[t].selected=a)}),m){const e=i[r].namespaces[o].workloads.filter(e=>!k(e.kind)).every(e=>e.selected);i[r].namespaces[o].selected=e}}else{if(!Ie(i[r].namespaces[o],l,s||{showOnlySelected:!1}))return;m&&(i[r].namespaces[o].selected=a),n.forEach((e,t)=>{a&&k(e.kind)||(i[r].namespaces[o].workloads[t].selected=a)})}else m&&(i[r].namespaces[o].selected=a),n.forEach((e,t)=>{a&&k(e.kind)||(i[r].namespaces[o].workloads[t].selected=a)})})}),i})},[k,m]);return e(Ne.Provider,{value:{snapshots:v,setSnapshots:b,isFetching:h,setIsFetching:g,formData:y,handleSourceChange:C,handleSelectAll:A,formDiff:E,isFormDirty:S},children:r})},Pe=()=>r(Ne);export{Q as A,X as D,Ae as E,ie as R,de as S,ne as a,ye as b,ke as c,Re as d,Y as e,re as f,le as g,De as h,Ce as i,Pe as j,we as k,Ie as l,Fe as m,W as u};
|