@odigos/ui-kit 0.0.47 → 0.0.48
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 +7 -0
- package/lib/components/key-value-input-list/index.d.ts +2 -0
- package/lib/components/key-value-input-list/key-value-input-list.stories.d.ts +2 -0
- package/lib/components.js +8 -8
- package/lib/constants.js +1 -1
- package/lib/containers/instrumentation-rule-form/custom-fields/custom-instrumentation.d.ts +5 -0
- package/lib/containers.js +67 -15
- package/lib/functions.js +5 -5
- package/lib/hooks/useInstrumentationRuleFormData.d.ts +2 -2
- package/lib/hooks.js +3 -3
- package/lib/icons/instrumentation-rules/custom-instrumentation-icon/custom-instrumentation-icon.stories.d.ts +7 -0
- package/lib/icons/instrumentation-rules/custom-instrumentation-icon/index.d.ts +2 -0
- package/lib/icons/instrumentation-rules/index.d.ts +1 -0
- package/lib/icons.js +6 -6
- package/lib/{index-C4aVlsHh.js → index-BIYXaOIt.js} +1 -1
- package/lib/{index-fEP_guwb.js → index-BWIOWlkS.js} +4 -4
- package/lib/{index-BRGQ84pJ.js → index-Bw7RE2T2.js} +21 -4
- package/lib/{index-BUCure0Q.js → index-CkTdd3MS.js} +1 -1
- package/lib/{index-BJpPcCBm.js → index-CrXEzEGw.js} +2 -2
- package/lib/{index-C8vqcUbP.js → index-DHHUJe_a.js} +2 -2
- package/lib/{index-B1IScVBT.js → index-DXBePB-r.js} +8 -8
- package/lib/{index-CpT8LSxY.js → index-D_SG1Qp0.js} +3 -3
- package/lib/{index-CeHgnkLY.js → index-DxR7e2Cq.js} +1 -1
- package/lib/{index-DypjdLnz.js → index-ZTzxu5fz.js} +1 -1
- package/lib/snippets.js +7 -7
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types/instrumentation-rules/index.d.ts +12 -0
- package/lib/types.js +8 -2
- package/lib/{useSourceSelectionFormData-CMXqoHZs.js → useSourceSelectionFormData-BP-O55O3.js} +2 -2
- package/lib/{useTransition-DsrDiKOV.js → useTransition-DanOnTji.js} +15 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.48](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.47...ui-kit-v0.0.48) (2025-06-26)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add new instrumentation rule - `CustomInstrumentation` ([#197](https://github.com/odigos-io/ui-kit/issues/197)) ([88e1615](https://github.com/odigos-io/ui-kit/commit/88e161528dff2bfc452398e8cbca373d153e0c08))
|
|
9
|
+
|
|
3
10
|
## [0.0.47](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.46...ui-kit-v0.0.47) (2025-06-26)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -11,6 +11,8 @@ interface KeyValueInputsListProps {
|
|
|
11
11
|
tooltip?: string;
|
|
12
12
|
required?: boolean;
|
|
13
13
|
errorMessage?: string;
|
|
14
|
+
keyPlaceholder?: string;
|
|
15
|
+
valuePlaceholder?: string;
|
|
14
16
|
}
|
|
15
17
|
declare const KeyValueInputsList: FC<KeyValueInputsListProps>;
|
|
16
18
|
export { KeyValueInputsList, type KeyValueInputsListProps };
|
|
@@ -7,3 +7,5 @@ declare const _default: {
|
|
|
7
7
|
};
|
|
8
8
|
export default _default;
|
|
9
9
|
export declare const Default: StoryFn<KeyValueInputsListProps>;
|
|
10
|
+
export declare const CustomPlaceholders: StoryFn<KeyValueInputsListProps>;
|
|
11
|
+
export declare const CustomInstrumentationExample: StoryFn<KeyValueInputsListProps>;
|
package/lib/components.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { B as Button } from './index-
|
|
2
|
-
export { a as AutocompleteInput, b as Badge, a1 as CenterThis, C as Checkbox, c as Code, d as ConditionDetails, D as DataCard, f as DataCardFieldTypes, e as DataCardFields, g as DataTab, h as Divider, i as DocsButton, j as Drawer, l as DrawerFooter, k as DrawerHeader, m as Dropdown, E as ExtendArrow, F as FadeLoader, n as FieldError, o as FieldLabel, a0 as FlexColumn, $ as FlexRow, H as Header, I as IconButton, p as IconGroup, q as IconTitleBadge, r as IconWrapped, s as IconsNav, t as ImageControlled, u as Input, v as InputList, w as InputTable, x as InteractiveTable, K as KeyValueInputsList, M as Modal, a4 as ModalBody, y as MonitorsCheckboxes, z as MonitorsIcons, N as NavigationButtons, G as NoDataFound, J as NotificationNote, a3 as Overlay, S as ScrollX, L as SectionTitle, O as Segment, P as SelectionButton, Q as SkeletonLoader, R as Status, U as Stepper, a5 as TableContainer, a6 as TableTitleWrap, a7 as TableWrap, V as Text, W as TextArea, X as Toggle, T as ToggleCodeComponent, Y as Tooltip, Z as TraceLoader, a2 as VerticalScroll, _ as WarningModal } from './index-
|
|
3
|
-
export { C as CancelWarning, D as DeleteWarning } from './index-
|
|
1
|
+
import { B as Button } from './index-DXBePB-r.js';
|
|
2
|
+
export { a as AutocompleteInput, b as Badge, a1 as CenterThis, C as Checkbox, c as Code, d as ConditionDetails, D as DataCard, f as DataCardFieldTypes, e as DataCardFields, g as DataTab, h as Divider, i as DocsButton, j as Drawer, l as DrawerFooter, k as DrawerHeader, m as Dropdown, E as ExtendArrow, F as FadeLoader, n as FieldError, o as FieldLabel, a0 as FlexColumn, $ as FlexRow, H as Header, I as IconButton, p as IconGroup, q as IconTitleBadge, r as IconWrapped, s as IconsNav, t as ImageControlled, u as Input, v as InputList, w as InputTable, x as InteractiveTable, K as KeyValueInputsList, M as Modal, a4 as ModalBody, y as MonitorsCheckboxes, z as MonitorsIcons, N as NavigationButtons, G as NoDataFound, J as NotificationNote, a3 as Overlay, S as ScrollX, L as SectionTitle, O as Segment, P as SelectionButton, Q as SkeletonLoader, R as Status, U as Stepper, a5 as TableContainer, a6 as TableTitleWrap, a7 as TableWrap, V as Text, W as TextArea, X as Toggle, T as ToggleCodeComponent, Y as Tooltip, Z as TraceLoader, a2 as VerticalScroll, _ as WarningModal } from './index-DXBePB-r.js';
|
|
3
|
+
export { C as CancelWarning, D as DeleteWarning } from './index-DHHUJe_a.js';
|
|
4
4
|
import React, { Component, createElement, createContext } from 'react';
|
|
5
|
-
import { T as Theme } from './index-
|
|
5
|
+
import { T as Theme } from './index-Bw7RE2T2.js';
|
|
6
6
|
import './types.js';
|
|
7
|
-
import './index-
|
|
8
|
-
import './index-
|
|
7
|
+
import './index-CkTdd3MS.js';
|
|
8
|
+
import './index-CrXEzEGw.js';
|
|
9
9
|
import 'styled-components';
|
|
10
|
-
import './index-
|
|
10
|
+
import './index-DxR7e2Cq.js';
|
|
11
11
|
import './index-BV85P9UP.js';
|
|
12
|
-
import './useTransition-
|
|
12
|
+
import './useTransition-DanOnTji.js';
|
|
13
13
|
import 'react-dom';
|
|
14
14
|
|
|
15
15
|
const ErrorBoundaryContext = createContext(null);
|
package/lib/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ACTION_OPTIONS, B as BUTTON_TEXTS, k as DEFAULT_DATA_STREAM_NAME, D as DISPLAY_LANGUAGES, l as DISPLAY_TITLES, F as FORM_ALERTS, I as INSTRUMENTATION_RULE_OPTIONS, L as LANGUAGE_OPTIONS, M as MONITORS_OPTIONS, S as STORAGE_KEYS } from './index-
|
|
1
|
+
export { A as ACTION_OPTIONS, B as BUTTON_TEXTS, k as DEFAULT_DATA_STREAM_NAME, D as DISPLAY_LANGUAGES, l as DISPLAY_TITLES, F as FORM_ALERTS, I as INSTRUMENTATION_RULE_OPTIONS, L as LANGUAGE_OPTIONS, M as MONITORS_OPTIONS, S as STORAGE_KEYS } from './index-Bw7RE2T2.js';
|
|
2
2
|
export { D as DESTINATION_CATEGORIES } from './index-Dqief9td.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import './types.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import { type CustomFieldProps, type InstrumentationRuleFormData } from '@/types';
|
|
3
|
+
type CustomInstrumentationProps = CustomFieldProps<InstrumentationRuleFormData>;
|
|
4
|
+
declare const CustomInstrumentation: FC<CustomInstrumentationProps>;
|
|
5
|
+
export { CustomInstrumentation, type CustomInstrumentationProps };
|
package/lib/containers.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import React, { useState, useEffect, forwardRef, useRef, useImperativeHandle, useMemo, memo, useContext, createContext, useCallback, useLayoutEffect, Fragment } from 'react';
|
|
2
2
|
import styled, { css } from 'styled-components';
|
|
3
|
-
import { l as DISPLAY_TITLES, T as Theme, h as usePendingStore, g as useNotificationStore, b as useDrawerStore, B as BUTTON_TEXTS, c as useEntityStore, A as ACTION_OPTIONS, m as getActionIcon, f as useModalStore, F as FORM_ALERTS, d as useFilterStore, M as MONITORS_OPTIONS,
|
|
4
|
-
import { ActionType, ActionKeyTypes, InputTypes, FieldTypes, EntityTypes, StatusType, Crud, OtherStatus, NodeTypes, AddNodeTypes, EdgeTypes, SignalType, HeadersCollectionKeyTypes, CodeAttributesKeyTypes, PayloadCollectionKeyTypes, InstrumentationRuleType, K8sResourceKind } from './types.js';
|
|
5
|
-
import { f as DataCardFieldTypes, o as FieldLabel, C as Checkbox, n as FieldError, u as Input, w as InputTable, K as KeyValueInputsList, v as InputList, V as Text, O as Segment, L as SectionTitle, i as DocsButton, y as MonitorsCheckboxes, W as TextArea, j as Drawer, d as ConditionDetails, D as DataCard, a0 as FlexColumn, M as Modal, N as NavigationButtons, a4 as ModalBody, J as NotificationNote, a as AutocompleteInput, h as Divider, R as Status, $ as FlexRow, Y as Tooltip, r as IconWrapped, z as MonitorsIcons, a5 as TableContainer, a6 as TableTitleWrap, q as IconTitleBadge, a7 as TableWrap, x as InteractiveTable, a1 as CenterThis, G as NoDataFound, Z as TraceLoader, b as Badge, E as ExtendArrow, a2 as VerticalScroll, P as SelectionButton, B as Button, m as Dropdown, a8 as getDefaultExportFromCjs, F as FadeLoader, g as DataTab, Q as SkeletonLoader, X as Toggle, I as IconButton, A as AddButton$1, U as Stepper, e as DataCardFields, s as IconsNav, p as IconGroup } from './index-
|
|
3
|
+
import { l as DISPLAY_TITLES, T as Theme, h as usePendingStore, g as useNotificationStore, b as useDrawerStore, B as BUTTON_TEXTS, c as useEntityStore, A as ACTION_OPTIONS, m as getActionIcon, f as useModalStore, F as FORM_ALERTS, d as useFilterStore, M as MONITORS_OPTIONS, a0 as styleInject, i as useSelectedStore, e as useInstrumentStore, o as getInstrumentationRuleIcon, a as useDataStreamStore, n as getEntityId, S as STORAGE_KEYS, k as DEFAULT_DATA_STREAM_NAME, j as useSetupStore, I as INSTRUMENTATION_RULE_OPTIONS, u as useDarkMode } from './index-Bw7RE2T2.js';
|
|
4
|
+
import { ActionType, ActionKeyTypes, InputTypes, FieldTypes, EntityTypes, StatusType, Crud, OtherStatus, NodeTypes, AddNodeTypes, EdgeTypes, SignalType, HeadersCollectionKeyTypes, CustomInstrumentationsKeyTypes, CodeAttributesKeyTypes, PayloadCollectionKeyTypes, InstrumentationRuleType, K8sResourceKind } from './types.js';
|
|
5
|
+
import { f as DataCardFieldTypes, o as FieldLabel, C as Checkbox, n as FieldError, u as Input, w as InputTable, K as KeyValueInputsList, v as InputList, V as Text, O as Segment, L as SectionTitle, i as DocsButton, y as MonitorsCheckboxes, W as TextArea, j as Drawer, d as ConditionDetails, D as DataCard, a0 as FlexColumn, M as Modal, N as NavigationButtons, a4 as ModalBody, J as NotificationNote, a as AutocompleteInput, h as Divider, R as Status, $ as FlexRow, Y as Tooltip, r as IconWrapped, z as MonitorsIcons, a5 as TableContainer, a6 as TableTitleWrap, q as IconTitleBadge, a7 as TableWrap, x as InteractiveTable, a1 as CenterThis, G as NoDataFound, Z as TraceLoader, b as Badge, E as ExtendArrow, a2 as VerticalScroll, P as SelectionButton, B as Button, m as Dropdown, a8 as getDefaultExportFromCjs, F as FadeLoader, g as DataTab, Q as SkeletonLoader, X as Toggle, I as IconButton, A as AddButton$1, U as Stepper, e as DataCardFields, s as IconsNav, p as IconGroup } from './index-DXBePB-r.js';
|
|
6
6
|
import { i as isEmpty, s as safeJsonParse } from './index-BV85P9UP.js';
|
|
7
|
-
import { C as CheckCircledIcon, O as OdigosLogo } from './index-
|
|
8
|
-
import { C as CrossCircledIcon, O as OdigosLogoText, a as OverviewIcon, F as FilterIcon, D as DataStreamsIcon, R as RetryIcon, N as NotificationIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon } from './index-
|
|
9
|
-
import { u as useActionFormData, a as useClickNode, e as useSessionStorage, c as useDataStreamFormData, d as useDestinationFormData, b as useClickNotification, f as useSourceFormData, g as useSourceSelectionFormData } from './useSourceSelectionFormData-
|
|
10
|
-
import { d as useKeyDown, e as useOnClickOutside, u as useContainerSize, c as useInstrumentationRuleFormData, g as useTransition, f as useTimeAgo, a as useCopy } from './useTransition-
|
|
11
|
-
import { E as EditIcon, T as TrashIcon, S as SearchIcon, P as PlusIcon$1, h as CheckIcon, A as ArrowIcon, a as CopyIcon, i as CrossIcon } from './index-
|
|
12
|
-
import { D as DeleteWarning, C as CancelWarning } from './index-
|
|
13
|
-
import { g as getConditionsBooleans, m as mapConditions, b as getStatusIcon, c as capitalizeFirstLetter } from './index-
|
|
14
|
-
import { f as filterActions, m as getEntityLabel, l as getEntityIcon, v as sleep$1, o as getPlatformIcon, p as getPlatformLabel, h as formatBytes, j as getContainersIcons, q as getValueForRange, k as getDestinationIcon, g as filterSourcesByStream, e as filterSources, b as filterDestinationsByStream, a as filterDestinations, u as mapDestinationFieldsForDisplay, c as compareCondition, s as getYamlFieldsForDestination, d as deepClone, n as getMetricForEntity, r as getWorkloadId, i as getContainersInstrumentedCount, t as isOverTime } from './index-
|
|
7
|
+
import { C as CheckCircledIcon, O as OdigosLogo } from './index-DxR7e2Cq.js';
|
|
8
|
+
import { C as CrossCircledIcon, O as OdigosLogoText, a as OverviewIcon, F as FilterIcon, D as DataStreamsIcon, R as RetryIcon, N as NotificationIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon } from './index-BIYXaOIt.js';
|
|
9
|
+
import { u as useActionFormData, a as useClickNode, e as useSessionStorage, c as useDataStreamFormData, d as useDestinationFormData, b as useClickNotification, f as useSourceFormData, g as useSourceSelectionFormData } from './useSourceSelectionFormData-BP-O55O3.js';
|
|
10
|
+
import { d as useKeyDown, e as useOnClickOutside, u as useContainerSize, c as useInstrumentationRuleFormData, g as useTransition, f as useTimeAgo, a as useCopy } from './useTransition-DanOnTji.js';
|
|
11
|
+
import { E as EditIcon, T as TrashIcon, S as SearchIcon, P as PlusIcon$1, h as CheckIcon, A as ArrowIcon, a as CopyIcon, i as CrossIcon } from './index-CkTdd3MS.js';
|
|
12
|
+
import { D as DeleteWarning, C as CancelWarning } from './index-DHHUJe_a.js';
|
|
13
|
+
import { g as getConditionsBooleans, m as mapConditions, b as getStatusIcon, c as capitalizeFirstLetter } from './index-CrXEzEGw.js';
|
|
14
|
+
import { f as filterActions, m as getEntityLabel, l as getEntityIcon, v as sleep$1, o as getPlatformIcon, p as getPlatformLabel, h as formatBytes, j as getContainersIcons, q as getValueForRange, k as getDestinationIcon, g as filterSourcesByStream, e as filterSources, b as filterDestinationsByStream, a as filterDestinations, u as mapDestinationFieldsForDisplay, c as compareCondition, s as getYamlFieldsForDestination, d as deepClone, n as getMetricForEntity, r as getWorkloadId, i as getContainersInstrumentedCount, t as isOverTime } from './index-D_SG1Qp0.js';
|
|
15
15
|
import { createPortal } from 'react-dom';
|
|
16
16
|
import { m as mapExportedSignals } from './index-BlZKWuxe.js';
|
|
17
|
-
import { N as NoteBackToSummary, E as EditButton } from './index-
|
|
17
|
+
import { N as NoteBackToSummary, E as EditButton } from './index-BWIOWlkS.js';
|
|
18
18
|
import { D as DESTINATION_CATEGORIES } from './index-Dqief9td.js';
|
|
19
|
-
import { a6 as RulesIcon, a7 as SourcesIcon, a3 as ActionsIcon, a4 as DestinationsIcon } from './index-
|
|
19
|
+
import { a6 as RulesIcon, a7 as SourcesIcon, a3 as ActionsIcon, a4 as DestinationsIcon } from './index-ZTzxu5fz.js';
|
|
20
20
|
|
|
21
21
|
const buildCard$3 = (action) => {
|
|
22
22
|
const { type, spec: { actionName, notes, signals, disabled, collectContainerAttributes, collectReplicaSetAttributes, collectWorkloadId, collectClusterId, labelsAttributes, annotationsAttributes, clusterAttributes, attributeNamesToDelete, renames, piiCategories, fallbackSamplingRatio, samplingPercentage, endpointsFilters, servicesNameFilters, attributeFilters, }, } = action;
|
|
@@ -15300,7 +15300,7 @@ const DestinationTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
15300
15300
|
};
|
|
15301
15301
|
|
|
15302
15302
|
const buildCard$1 = (rule) => {
|
|
15303
|
-
const { type, ruleName, notes, disabled, profileName, payloadCollection, codeAttributes, headersCollection } = rule;
|
|
15303
|
+
const { type, ruleName, notes, disabled, profileName, payloadCollection, codeAttributes, headersCollection, customInstrumentations } = rule;
|
|
15304
15304
|
const arr = [
|
|
15305
15305
|
{ title: DISPLAY_TITLES.TYPE, value: type },
|
|
15306
15306
|
{ type: DataCardFieldTypes.ActiveStatus, title: DISPLAY_TITLES.STATUS, value: String(!disabled) },
|
|
@@ -15330,6 +15330,15 @@ const buildCard$1 = (rule) => {
|
|
|
15330
15330
|
if (str)
|
|
15331
15331
|
arr.push({ title: 'Collect', value: str });
|
|
15332
15332
|
}
|
|
15333
|
+
if (customInstrumentations) {
|
|
15334
|
+
const probes = customInstrumentations[CustomInstrumentationsKeyTypes.Probes] || [];
|
|
15335
|
+
const str = probes
|
|
15336
|
+
.filter(probe => probe.className && probe.methodName)
|
|
15337
|
+
.map(probe => `${probe.className}.${probe.methodName}`)
|
|
15338
|
+
.join(', ');
|
|
15339
|
+
if (str)
|
|
15340
|
+
arr.push({ title: 'Instrumented Methods', value: str });
|
|
15341
|
+
}
|
|
15333
15342
|
return arr;
|
|
15334
15343
|
};
|
|
15335
15344
|
|
|
@@ -15423,6 +15432,38 @@ const CodeAttributes = ({ value, setValue, formErrors }) => {
|
|
|
15423
15432
|
!!errorMessage && React.createElement(FieldError, null, errorMessage))));
|
|
15424
15433
|
};
|
|
15425
15434
|
|
|
15435
|
+
const INITIAL_PROBE = {
|
|
15436
|
+
className: '',
|
|
15437
|
+
methodName: '',
|
|
15438
|
+
};
|
|
15439
|
+
const CustomInstrumentation = ({ value, setValue, formErrors }) => {
|
|
15440
|
+
const errorMessage = formErrors['customInstrumentations'];
|
|
15441
|
+
const mappedValue = useMemo(() => {
|
|
15442
|
+
const probes = value?.['customInstrumentations']?.[CustomInstrumentationsKeyTypes.Probes] || [];
|
|
15443
|
+
return probes.map(probe => ({
|
|
15444
|
+
key: probe.className,
|
|
15445
|
+
value: probe.methodName,
|
|
15446
|
+
}));
|
|
15447
|
+
}, [value]);
|
|
15448
|
+
const handleChange = (keyValuePairs) => {
|
|
15449
|
+
const probes = keyValuePairs.map(pair => ({
|
|
15450
|
+
className: pair.key,
|
|
15451
|
+
methodName: pair.value,
|
|
15452
|
+
}));
|
|
15453
|
+
const payload = {
|
|
15454
|
+
[CustomInstrumentationsKeyTypes.Probes]: probes,
|
|
15455
|
+
};
|
|
15456
|
+
setValue('customInstrumentations', payload);
|
|
15457
|
+
};
|
|
15458
|
+
useEffect(() => {
|
|
15459
|
+
if (!mappedValue.length) {
|
|
15460
|
+
handleChange([{ key: INITIAL_PROBE.className, value: INITIAL_PROBE.methodName }]);
|
|
15461
|
+
}
|
|
15462
|
+
}, [mappedValue]);
|
|
15463
|
+
return (React.createElement("div", null,
|
|
15464
|
+
React.createElement(KeyValueInputsList, { title: 'Class and Method Pairs', tooltip: 'Specify class name and method name pairs to instrument. Class name should be fully qualified (e.g., com.example.service.UserService) and method name should be exact (e.g., createUser).', value: mappedValue, onChange: handleChange, errorMessage: errorMessage, required: true, keyPlaceholder: 'Class name', valuePlaceholder: 'Method name' })));
|
|
15465
|
+
};
|
|
15466
|
+
|
|
15426
15467
|
const ALL_HEADERS = ['*'];
|
|
15427
15468
|
const HeadersCollection = ({ value, setValue, formErrors }) => {
|
|
15428
15469
|
const errorMessage = formErrors['headersCollection'];
|
|
@@ -15508,6 +15549,7 @@ const PayloadCollection = ({ value, setValue, formErrors }) => {
|
|
|
15508
15549
|
|
|
15509
15550
|
const componentsMap = {
|
|
15510
15551
|
[InstrumentationRuleType.CodeAttributes]: CodeAttributes,
|
|
15552
|
+
[InstrumentationRuleType.CustomInstrumentation]: CustomInstrumentation,
|
|
15511
15553
|
[InstrumentationRuleType.HeadersCollection]: HeadersCollection,
|
|
15512
15554
|
[InstrumentationRuleType.PayloadCollection]: PayloadCollection,
|
|
15513
15555
|
[InstrumentationRuleType.UnknownType]: null,
|
|
@@ -15672,7 +15714,7 @@ const InstrumentationRuleModal = ({ isEnterprise, createInstrumentationRule }) =
|
|
|
15672
15714
|
};
|
|
15673
15715
|
|
|
15674
15716
|
const buildSpecCell = (rule) => {
|
|
15675
|
-
const { payloadCollection, codeAttributes } = rule;
|
|
15717
|
+
const { payloadCollection, codeAttributes, customInstrumentations } = rule;
|
|
15676
15718
|
let str = '';
|
|
15677
15719
|
if (!!payloadCollection) {
|
|
15678
15720
|
str += Object.entries(payloadCollection)
|
|
@@ -15686,6 +15728,16 @@ const buildSpecCell = (rule) => {
|
|
|
15686
15728
|
.map(([key, val]) => key)
|
|
15687
15729
|
.join(', ');
|
|
15688
15730
|
}
|
|
15731
|
+
if (!!customInstrumentations) {
|
|
15732
|
+
const probes = customInstrumentations[CustomInstrumentationsKeyTypes.Probes] || [];
|
|
15733
|
+
const customStr = probes
|
|
15734
|
+
.filter(probe => probe.className && probe.methodName)
|
|
15735
|
+
.map(probe => `${probe.className}.${probe.methodName}`)
|
|
15736
|
+
.join(', ');
|
|
15737
|
+
if (customStr) {
|
|
15738
|
+
str += str ? `, ${customStr}` : customStr;
|
|
15739
|
+
}
|
|
15740
|
+
}
|
|
15689
15741
|
return str;
|
|
15690
15742
|
};
|
|
15691
15743
|
|
package/lib/functions.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getConditionsBooleans, a as getMonitorIcon, b as getStatusIcon, i as isValidVersion, m as mapConditions, n as numbersOnly, p as parseBooleanFromString, d as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, e as splitCamelString } from './index-
|
|
2
|
-
export { c as compareCondition, d as deepClone, f as filterActions, a as filterDestinations, b as filterDestinationsByStream, e as filterSources, g as filterSourcesByStream, h as formatBytes, j as getContainersIcons, i as getContainersInstrumentedCount, k as getDestinationIcon, l as getEntityIcon, m as getEntityLabel, n as getMetricForEntity, o as getPlatformIcon, p as getPlatformLabel, q as getValueForRange, r as getWorkloadId, s as getYamlFieldsForDestination, t as isOverTime, u as mapDestinationFieldsForDisplay, v as sleep } from './index-
|
|
3
|
-
export { m as getActionIcon, n as getEntityId, o as getInstrumentationRuleIcon, p as getProgrammingLanguageIcon } from './index-
|
|
1
|
+
export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getConditionsBooleans, a as getMonitorIcon, b as getStatusIcon, i as isValidVersion, m as mapConditions, n as numbersOnly, p as parseBooleanFromString, d as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, e as splitCamelString } from './index-CrXEzEGw.js';
|
|
2
|
+
export { c as compareCondition, d as deepClone, f as filterActions, a as filterDestinations, b as filterDestinationsByStream, e as filterSources, g as filterSourcesByStream, h as formatBytes, j as getContainersIcons, i as getContainersInstrumentedCount, k as getDestinationIcon, l as getEntityIcon, m as getEntityLabel, n as getMetricForEntity, o as getPlatformIcon, p as getPlatformLabel, q as getValueForRange, r as getWorkloadId, s as getYamlFieldsForDestination, t as isOverTime, u as mapDestinationFieldsForDisplay, v as sleep } from './index-D_SG1Qp0.js';
|
|
3
|
+
export { m as getActionIcon, n as getEntityId, o as getInstrumentationRuleIcon, p as getProgrammingLanguageIcon } from './index-Bw7RE2T2.js';
|
|
4
4
|
export { g as getIdFromSseTarget, i as isLegalK8sLabel, m as mapExportedSignals } from './index-BlZKWuxe.js';
|
|
5
5
|
import { EntityTypes } from './types.js';
|
|
6
6
|
export { i as isEmpty, s as safeJsonParse } from './index-BV85P9UP.js';
|
|
7
7
|
import 'react';
|
|
8
8
|
import 'styled-components';
|
|
9
|
-
import './index-
|
|
10
|
-
import './index-
|
|
9
|
+
import './index-DxR7e2Cq.js';
|
|
10
|
+
import './index-ZTzxu5fz.js';
|
|
11
11
|
|
|
12
12
|
const cleanObjectEmptyStringsValues = (obj) => {
|
|
13
13
|
const cleanArray = (arr) => arr.filter((item) => {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { type InstrumentationRule, type InstrumentationRuleFormData } from '@/types';
|
|
2
2
|
export declare const useInstrumentationRuleFormData: () => {
|
|
3
3
|
formData: InstrumentationRuleFormData;
|
|
4
|
-
formErrors: Partial<Record<"ruleName" | "notes" | "disabled" | "workloads" | "instrumentationLibraries" | "codeAttributes" | "headersCollection" | "payloadCollection", string>>;
|
|
4
|
+
formErrors: Partial<Record<"ruleName" | "notes" | "disabled" | "workloads" | "instrumentationLibraries" | "codeAttributes" | "headersCollection" | "payloadCollection" | "customInstrumentations", string>>;
|
|
5
5
|
handleFormChange: (key?: string | undefined, val?: any, obj?: InstrumentationRuleFormData | undefined) => void;
|
|
6
6
|
resetFormData: () => void;
|
|
7
7
|
validateForm: (params?: {
|
|
8
8
|
withAlert?: boolean;
|
|
9
9
|
alertTitle?: string;
|
|
10
10
|
}) => boolean;
|
|
11
|
-
loadFormWithDrawerItem: ({ ruleName, notes, disabled, payloadCollection, codeAttributes }: InstrumentationRule) => void;
|
|
11
|
+
loadFormWithDrawerItem: ({ ruleName, notes, disabled, payloadCollection, codeAttributes, headersCollection, customInstrumentations }: InstrumentationRule) => void;
|
|
12
12
|
};
|
package/lib/hooks.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { u as useActionFormData, a as useClickNode, b as useClickNotification, c as useDataStreamFormData, d as useDestinationFormData, e as useSessionStorage, f as useSourceFormData, g as useSourceSelectionFormData } from './useSourceSelectionFormData-
|
|
2
|
-
export { u as useContainerSize, a as useCopy, b as useGenericForm, c as useInstrumentationRuleFormData, d as useKeyDown, e as useOnClickOutside, f as useTimeAgo, g as useTransition } from './useTransition-
|
|
1
|
+
export { u as useActionFormData, a as useClickNode, b as useClickNotification, c as useDataStreamFormData, d as useDestinationFormData, e as useSessionStorage, f as useSourceFormData, g as useSourceSelectionFormData } from './useSourceSelectionFormData-BP-O55O3.js';
|
|
2
|
+
export { u as useContainerSize, a as useCopy, b as useGenericForm, c as useInstrumentationRuleFormData, d as useKeyDown, e as useOnClickOutside, f as useTimeAgo, g as useTransition } from './useTransition-DanOnTji.js';
|
|
3
3
|
import './types.js';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-Bw7RE2T2.js';
|
|
5
5
|
import 'react';
|
|
6
6
|
import 'styled-components';
|
|
7
7
|
import './index-BV85P9UP.js';
|
package/lib/icons.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { T as Theme } from './index-
|
|
2
|
-
export { q as AddClusterInfoIcon,
|
|
3
|
-
export { C as CheckCircledIcon, E as ErrorTriangleIcon, I as InfoIcon, L as LogsIcon, M as MetricsIcon, O as OdigosLogo, T as TracesIcon, W as WarningTriangleIcon } from './index-
|
|
4
|
-
export { C as CrossCircledIcon, D as DataStreamsIcon, F as FilterIcon, K as KeyIcon, N as NotificationIcon, O as OdigosLogoText, a as OverviewIcon, R as RetryIcon, S as SlackLogo, T as TerminalIcon } from './index-
|
|
5
|
-
export { A as ArrowIcon, h as CheckIcon, C as CodeIcon, a as CopyIcon, i as CrossIcon, E as EditIcon, b as EditedIcon, c as ExtendArrowIcon, f as EyeClosedIcon, g as EyeOpenIcon, L as ListIcon, M as MinusIcon, N as NoDataIcon, d as NotebookIcon, P as PlusIcon, S as SearchIcon, e as SortArrowsIcon, T as TrashIcon, X as XIcon } from './index-
|
|
1
|
+
import { T as Theme } from './index-Bw7RE2T2.js';
|
|
2
|
+
export { q as AddClusterInfoIcon, y as CPlusPlusLogo, z as CSharpLogo, C as CodeAttributesIcon, w as CustomInstrumentationIcon, r as DeleteAttributeIcon, E as DotnetLogo, G as ElixirLogo, J as GoLogo, H as HeadersCollectionIcon, t as ImageErrorIcon, N as JavaLogo, K as K8sLogo, v as KafkaLogo, O as MysqlLogo, Q as NginxLogo, U as NodejsLogo, x as PayloadCollectionIcon, V as PhpLogo, P as PiiMaskingIcon, W as PostgresLogo, X as PythonLogo, Y as RedisLogo, R as RenameAttributeIcon, Z as RubyLogo, _ as RustLogo, s as SamplerIcon, $ as SwiftLogo } from './index-Bw7RE2T2.js';
|
|
3
|
+
export { C as CheckCircledIcon, E as ErrorTriangleIcon, I as InfoIcon, L as LogsIcon, M as MetricsIcon, O as OdigosLogo, T as TracesIcon, W as WarningTriangleIcon } from './index-DxR7e2Cq.js';
|
|
4
|
+
export { C as CrossCircledIcon, D as DataStreamsIcon, F as FilterIcon, K as KeyIcon, N as NotificationIcon, O as OdigosLogoText, a as OverviewIcon, R as RetryIcon, S as SlackLogo, T as TerminalIcon } from './index-BIYXaOIt.js';
|
|
5
|
+
export { A as ArrowIcon, h as CheckIcon, C as CodeIcon, a as CopyIcon, i as CrossIcon, E as EditIcon, b as EditedIcon, c as ExtendArrowIcon, f as EyeClosedIcon, g as EyeOpenIcon, L as ListIcon, M as MinusIcon, N as NoDataIcon, d as NotebookIcon, P as PlusIcon, S as SearchIcon, e as SortArrowsIcon, T as TrashIcon, X as XIcon } from './index-CkTdd3MS.js';
|
|
6
6
|
import React from 'react';
|
|
7
|
-
export { a3 as ActionsIcon, A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, c as AwsCloudwatchLogo, d as AwsS3Logo, e as AwsXrayLogo, f as AxiomLogo, B as BetterStackLogo, g as BlobStorageLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, a4 as DestinationsIcon, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, G as GigapipeLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, a5 as NamespacesIcon, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, F as OpenTelemetryLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, T as QuickwitLogo, a6 as RulesIcon, U as SeqLogo, W as SignozLogo, a7 as SourcesIcon, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, V as VmLogo } from './index-
|
|
7
|
+
export { a3 as ActionsIcon, A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, c as AwsCloudwatchLogo, d as AwsS3Logo, e as AwsXrayLogo, f as AxiomLogo, B as BetterStackLogo, g as BlobStorageLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, a4 as DestinationsIcon, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, G as GigapipeLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, a5 as NamespacesIcon, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, F as OpenTelemetryLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, T as QuickwitLogo, a6 as RulesIcon, U as SeqLogo, W as SignozLogo, a7 as SourcesIcon, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, V as VmLogo } from './index-ZTzxu5fz.js';
|
|
8
8
|
import './types.js';
|
|
9
9
|
import 'styled-components';
|
|
10
10
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { T as Theme, B as BUTTON_TEXTS, l as DISPLAY_TITLES } from './index-
|
|
3
|
-
import { E as EditIcon } from './index-
|
|
4
|
-
import { B as Button, V as Text, J as NotificationNote } from './index-
|
|
2
|
+
import { T as Theme, B as BUTTON_TEXTS, l as DISPLAY_TITLES } from './index-Bw7RE2T2.js';
|
|
3
|
+
import { E as EditIcon } from './index-CkTdd3MS.js';
|
|
4
|
+
import { B as Button, V as Text, J as NotificationNote } from './index-DXBePB-r.js';
|
|
5
5
|
import { StatusType } from './types.js';
|
|
6
6
|
import 'styled-components';
|
|
7
|
-
import { I as InfoIcon } from './index-
|
|
7
|
+
import { I as InfoIcon } from './index-DxR7e2Cq.js';
|
|
8
8
|
|
|
9
9
|
const EditButton = ({ label, onClick, variant = 'tertiary', ...props }) => {
|
|
10
10
|
const theme = Theme.useTheme();
|
|
@@ -104,6 +104,14 @@ const CodeAttributesIcon = ({ size = 16, fill: f, rotate = 0, onClick }) => {
|
|
|
104
104
|
React.createElement("path", { stroke: fill, strokeWidth: '1.5', strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M8 4C6.34315 4 5 5.19391 5 6.66667V9.33333C5 10.8061 3.65685 12 2 12C3.65685 12 5 13.1939 5 14.6667V17.3333C5 18.8061 6.34315 20 8 20M16 4C17.6569 4 19 5.19391 19 6.66667V9.33333C19 10.8061 20.3431 12 22 12C20.3431 12 19 13.1939 19 14.6667V17.3333C19 18.8061 17.6569 20 16 20M12.001 12H12M15.001 12H15M9.001 12H9' })));
|
|
105
105
|
};
|
|
106
106
|
|
|
107
|
+
const CustomInstrumentationIcon = ({ size = 16, fill: f, rotate = 0, onClick }) => {
|
|
108
|
+
const theme = Theme.useTheme();
|
|
109
|
+
const fill = f || theme.text.secondary;
|
|
110
|
+
return (React.createElement("svg", { width: size, height: size, viewBox: '0 0 24 24', xmlns: 'http://www.w3.org/2000/svg', fill: 'none', style: { transform: `rotate(${rotate}deg)` }, onClick: onClick },
|
|
111
|
+
React.createElement("path", { stroke: fill, strokeLinecap: 'round', strokeLinejoin: 'round', strokeWidth: '1.5', d: 'M8 9H16M8 13H12M8 17H16M3 5C3 3.89543 3.89543 3 5 3H19C20.1046 3 21 3.89543 21 5V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V5Z' }),
|
|
112
|
+
React.createElement("circle", { cx: '17', cy: '7', r: '2', stroke: fill, strokeWidth: '1.5', fill: 'none' })));
|
|
113
|
+
};
|
|
114
|
+
|
|
107
115
|
const HeadersCollectionIcon = ({ size = 16, fill: f, rotate = 0, onClick }) => {
|
|
108
116
|
const theme = Theme.useTheme();
|
|
109
117
|
const fill = f || theme.text.secondary;
|
|
@@ -695,6 +703,7 @@ const ACTION_OPTIONS = [
|
|
|
695
703
|
const getInstrumentationRuleIcon = (type) => {
|
|
696
704
|
const LOGOS = {
|
|
697
705
|
[InstrumentationRuleType.CodeAttributes]: CodeAttributesIcon,
|
|
706
|
+
[InstrumentationRuleType.CustomInstrumentation]: CustomInstrumentationIcon,
|
|
698
707
|
[InstrumentationRuleType.HeadersCollection]: HeadersCollectionIcon,
|
|
699
708
|
[InstrumentationRuleType.PayloadCollection]: PayloadCollectionIcon,
|
|
700
709
|
[InstrumentationRuleType.UnknownType]: ImageErrorIcon,
|
|
@@ -709,7 +718,15 @@ const INSTRUMENTATION_RULE_OPTIONS = [
|
|
|
709
718
|
label: 'Code Attributes',
|
|
710
719
|
description: 'Collect code attributes containing payload data to traces.',
|
|
711
720
|
docsEndpoint: '/pipeline/rules/codeattributes',
|
|
712
|
-
docsDescription: 'The
|
|
721
|
+
docsDescription: 'The "Code Attributes" Rule can be used to add code attributes containing payload data to traces.',
|
|
722
|
+
},
|
|
723
|
+
{
|
|
724
|
+
type: InstrumentationRuleType.CustomInstrumentation,
|
|
725
|
+
icon: getInstrumentationRuleIcon(InstrumentationRuleType.CustomInstrumentation),
|
|
726
|
+
label: 'Custom Instrumentation',
|
|
727
|
+
description: 'Define custom instrumentation for specific class and method combinations.',
|
|
728
|
+
docsEndpoint: '/pipeline/rules/custominstrumentation',
|
|
729
|
+
docsDescription: 'The "Custom Instrumentation" Rule can be used to instrument specific class and method combinations for detailed tracing.',
|
|
713
730
|
},
|
|
714
731
|
{
|
|
715
732
|
type: InstrumentationRuleType.HeadersCollection,
|
|
@@ -717,7 +734,7 @@ const INSTRUMENTATION_RULE_OPTIONS = [
|
|
|
717
734
|
label: 'Headers Collection',
|
|
718
735
|
description: 'Collect span attributes containing HTTP Headers data to traces.',
|
|
719
736
|
docsEndpoint: '/pipeline/rules/headerscollection',
|
|
720
|
-
docsDescription: 'The
|
|
737
|
+
docsDescription: 'The "Headers Collection" Rule can be used to add span attributes containing HTTP Headers data to traces.',
|
|
721
738
|
},
|
|
722
739
|
{
|
|
723
740
|
type: InstrumentationRuleType.PayloadCollection,
|
|
@@ -725,7 +742,7 @@ const INSTRUMENTATION_RULE_OPTIONS = [
|
|
|
725
742
|
label: 'Payload Collection',
|
|
726
743
|
description: 'Collect span attributes containing payload data to traces.',
|
|
727
744
|
docsEndpoint: '/pipeline/rules/payloadcollection',
|
|
728
|
-
docsDescription: 'The
|
|
745
|
+
docsDescription: 'The "Payload Collection" Rule can be used to add span attributes containing payload data to traces.',
|
|
729
746
|
},
|
|
730
747
|
];
|
|
731
748
|
|
|
@@ -1871,4 +1888,4 @@ var animations = /*#__PURE__*/Object.freeze({
|
|
|
1871
1888
|
|
|
1872
1889
|
const Theme = { Provider, useTheme, opacity, animations };
|
|
1873
1890
|
|
|
1874
|
-
export {
|
|
1891
|
+
export { SwiftLogo as $, ACTION_OPTIONS as A, BUTTON_TEXTS as B, CodeAttributesIcon as C, DISPLAY_LANGUAGES as D, DotnetLogo as E, FORM_ALERTS as F, ElixirLogo as G, HeadersCollectionIcon as H, INSTRUMENTATION_RULE_OPTIONS as I, GoLogo as J, K8sLogo as K, LANGUAGE_OPTIONS as L, MONITORS_OPTIONS as M, JavaLogo as N, MysqlLogo as O, PiiMaskingIcon as P, NginxLogo as Q, RenameAttributeIcon as R, STORAGE_KEYS as S, Theme as T, NodejsLogo as U, PhpLogo as V, PostgresLogo as W, PythonLogo as X, RedisLogo as Y, RubyLogo as Z, RustLogo as _, useDataStreamStore as a, styleInject as a0, useDrawerStore as b, useEntityStore as c, useFilterStore as d, useInstrumentStore as e, useModalStore as f, useNotificationStore as g, usePendingStore as h, useSelectedStore as i, useSetupStore as j, DEFAULT_DATA_STREAM_NAME as k, DISPLAY_TITLES as l, getActionIcon as m, getEntityId as n, getInstrumentationRuleIcon as o, getProgrammingLanguageIcon as p, AddClusterInfoIcon as q, DeleteAttributeIcon as r, SamplerIcon as s, ImageErrorIcon as t, useDarkMode as u, KafkaLogo as v, CustomInstrumentationIcon as w, PayloadCollectionIcon as x, CPlusPlusLogo as y, CSharpLogo as z };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { StatusType, OtherStatus, SignalType } from './types.js';
|
|
2
2
|
import 'react';
|
|
3
|
-
import './index-
|
|
3
|
+
import './index-Bw7RE2T2.js';
|
|
4
4
|
import 'styled-components';
|
|
5
|
-
import { T as TracesIcon, M as MetricsIcon, L as LogsIcon, O as OdigosLogo, I as InfoIcon, W as WarningTriangleIcon, E as ErrorTriangleIcon, C as CheckCircledIcon } from './index-
|
|
5
|
+
import { T as TracesIcon, M as MetricsIcon, L as LogsIcon, O as OdigosLogo, I as InfoIcon, W as WarningTriangleIcon, E as ErrorTriangleIcon, C as CheckCircledIcon } from './index-DxR7e2Cq.js';
|
|
6
6
|
|
|
7
7
|
const capitalizeFirstLetter = (string) => {
|
|
8
8
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { _ as WarningModal } from './index-
|
|
2
|
+
import { _ as WarningModal } from './index-DXBePB-r.js';
|
|
3
3
|
import { StatusType, EntityTypes } from './types.js';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-Bw7RE2T2.js';
|
|
5
5
|
import 'styled-components';
|
|
6
6
|
|
|
7
7
|
const CancelWarning = ({ isOpen, noOverlay, name, onApprove, onDeny }) => {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React, { useState, useEffect, useRef, forwardRef, createElement, useCallback, useMemo, Fragment } from 'react';
|
|
2
|
-
import { T as Theme, t as ImageErrorIcon, M as MONITORS_OPTIONS, g as useNotificationStore, l as DISPLAY_TITLES, L as LANGUAGE_OPTIONS, F as FORM_ALERTS, p as getProgrammingLanguageIcon, D as DISPLAY_LANGUAGES, B as BUTTON_TEXTS } from './index-
|
|
2
|
+
import { T as Theme, t as ImageErrorIcon, M as MONITORS_OPTIONS, g as useNotificationStore, l as DISPLAY_TITLES, L as LANGUAGE_OPTIONS, F as FORM_ALERTS, p as getProgrammingLanguageIcon, D as DISPLAY_LANGUAGES, B as BUTTON_TEXTS } from './index-Bw7RE2T2.js';
|
|
3
3
|
import { StatusType, OtherStatus, ProgrammingLanguages, SortDirection, IntrumentationStatus, InputTypes, FieldTypes } from './types.js';
|
|
4
|
-
import { M as MinusIcon, h as CheckIcon, L as ListIcon, C as CodeIcon, c as ExtendArrowIcon, E as EditIcon, i as CrossIcon, T as TrashIcon, e as SortArrowsIcon, b as EditedIcon, a as CopyIcon, d as NotebookIcon, X as XIcon, f as EyeClosedIcon, g as EyeOpenIcon, N as NoDataIcon, S as SearchIcon, P as PlusIcon, A as ArrowIcon } from './index-
|
|
5
|
-
import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, g as getConditionsBooleans, c as capitalizeFirstLetter, a as getMonitorIcon, i as isValidVersion, d as parseJsonStringToPrettyString, e as splitCamelString, p as parseBooleanFromString, n as numbersOnly } from './index-
|
|
4
|
+
import { M as MinusIcon, h as CheckIcon, L as ListIcon, C as CodeIcon, c as ExtendArrowIcon, E as EditIcon, i as CrossIcon, T as TrashIcon, e as SortArrowsIcon, b as EditedIcon, a as CopyIcon, d as NotebookIcon, X as XIcon, f as EyeClosedIcon, g as EyeOpenIcon, N as NoDataIcon, S as SearchIcon, P as PlusIcon, A as ArrowIcon } from './index-CkTdd3MS.js';
|
|
5
|
+
import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, g as getConditionsBooleans, c as capitalizeFirstLetter, a as getMonitorIcon, i as isValidVersion, d as parseJsonStringToPrettyString, e as splitCamelString, p as parseBooleanFromString, n as numbersOnly } from './index-CrXEzEGw.js';
|
|
6
6
|
import styled, { css } from 'styled-components';
|
|
7
7
|
import { s as safeJsonParse, i as isEmpty } from './index-BV85P9UP.js';
|
|
8
|
-
import { b as useGenericForm, e as useOnClickOutside, d as useKeyDown, u as useContainerSize, a as useCopy, g as useTransition } from './useTransition-
|
|
8
|
+
import { b as useGenericForm, e as useOnClickOutside, d as useKeyDown, u as useContainerSize, a as useCopy, g as useTransition } from './useTransition-DanOnTji.js';
|
|
9
9
|
import ReactDOM from 'react-dom';
|
|
10
|
-
import { I as InfoIcon } from './index-
|
|
10
|
+
import { I as InfoIcon } from './index-DxR7e2Cq.js';
|
|
11
11
|
|
|
12
12
|
const TextWrapper$2 = styled.div `
|
|
13
13
|
color: ${({ $color, theme }) => $color || theme.text.secondary};
|
|
@@ -5631,7 +5631,7 @@ const INITIAL_ROW = {
|
|
|
5631
5631
|
key: '',
|
|
5632
5632
|
value: '',
|
|
5633
5633
|
};
|
|
5634
|
-
const KeyValueInputsList = ({ initialKeyValuePairs = [], value, onChange, title, tooltip, required, errorMessage }) => {
|
|
5634
|
+
const KeyValueInputsList = ({ initialKeyValuePairs = [], value, onChange, title, tooltip, required, errorMessage, keyPlaceholder = 'Attribute name', valuePlaceholder = 'Attribute value' }) => {
|
|
5635
5635
|
const theme = Theme.useTheme();
|
|
5636
5636
|
const [rows, setRows] = useState(value || initialKeyValuePairs);
|
|
5637
5637
|
useEffect(() => {
|
|
@@ -5674,10 +5674,10 @@ const KeyValueInputsList = ({ initialKeyValuePairs = [], value, onChange, title,
|
|
|
5674
5674
|
return (React.createElement(Container$a, null,
|
|
5675
5675
|
React.createElement(FieldLabel, { title: title, required: required, tooltip: tooltip }),
|
|
5676
5676
|
React.createElement(ListContainer$1, null, rows.map(({ key, value }, idx) => (React.createElement(RowWrapper, { key: `key-value-input-list-${idx}` },
|
|
5677
|
-
React.createElement(Input, { placeholder:
|
|
5677
|
+
React.createElement(Input, { placeholder: keyPlaceholder, value: key, onChange: (e) => handleChange('key', e.target.value, idx), hasError: !!errorMessage && (!required || (required && !key)), autoFocus: isEmpty(value) && !isMinRows && idx === rows.length - 1 }),
|
|
5678
5678
|
React.createElement("div", null,
|
|
5679
5679
|
React.createElement(ArrowIcon, { rotate: 180, fill: theme.text.darker_grey })),
|
|
5680
|
-
React.createElement(Input, { placeholder:
|
|
5680
|
+
React.createElement(Input, { placeholder: valuePlaceholder, value: value, onChange: (e) => handleChange('value', e.target.value, idx), hasError: !!errorMessage && (!required || (required && isEmpty(value))), autoFocus: false }),
|
|
5681
5681
|
React.createElement(DeleteButton, { disabled: isDelButtonDisabled, onClick: () => {
|
|
5682
5682
|
if (isMinRows) {
|
|
5683
5683
|
handleChange('key', '', idx);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { StatusType, DestinationTypes, EntityTypes, PlatformType } from './types.js';
|
|
2
|
-
import { k as DEFAULT_DATA_STREAM_NAME, p as getProgrammingLanguageIcon, v as KafkaLogo, K as K8sLogo } from './index-
|
|
2
|
+
import { k as DEFAULT_DATA_STREAM_NAME, p as getProgrammingLanguageIcon, v as KafkaLogo, K as K8sLogo } from './index-Bw7RE2T2.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'styled-components';
|
|
5
|
-
import { e as AwsXrayLogo, a2 as VictoriaMetricsLogo, a1 as UptraceLogo, a0 as TraceloopLogo, $ as TingyunLogo, _ as TempoLogo, Z as TelemetryHubLogo, Y as SumoLogicLogo, X as SplunkLogo, W as SignozLogo, U as SeqLogo, d as AwsS3Logo, T as QuickwitLogo, G as GigapipeLogo, S as QrynLogo, R as PrometheusLogo, F as OpenTelemetryLogo, Q as OracleLogo, P as OpsVerseLogo, z as OpenObserveLogo, y as OneUptimeLogo, O as ObserveLogo, N as NewRelicLogo, M as MiddlewareLogo, x as LumigoLogo, w as LokiLogo, v as LogzioLogo, u as LightstepLogo, L as Last9Logo, K as KloudmateLogo, J as JaegerLogo, I as InstanaLogo, t as HyperDxLogo, H as HoneycombLogo, s as GroundcoverLogo, r as GreptimeLogo, q as GrafanaLogo, p as GoogleCloudPlatformLogo, o as ElasticSearchLogo, E as ElasticApmLogo, n as DynatraceLogo, m as DatadogLogo, D as Dash0Logo, l as CoralogixLogo, c as AwsCloudwatchLogo, k as ClickhouseLogo, j as ChronosphereLogo, i as ChecklyLogo, C as CauselyLogo, h as BonreeLogo, B as BetterStackLogo, g as BlobStorageLogo, f as AxiomLogo, b as AppDynamicsLogo, a as AlibabaCloudLogo, A as AlaudaLogo, a6 as RulesIcon, a3 as ActionsIcon, a4 as DestinationsIcon, a7 as SourcesIcon, a5 as NamespacesIcon, V as VmLogo } from './index-
|
|
6
|
-
import { O as OdigosLogo } from './index-
|
|
5
|
+
import { e as AwsXrayLogo, a2 as VictoriaMetricsLogo, a1 as UptraceLogo, a0 as TraceloopLogo, $ as TingyunLogo, _ as TempoLogo, Z as TelemetryHubLogo, Y as SumoLogicLogo, X as SplunkLogo, W as SignozLogo, U as SeqLogo, d as AwsS3Logo, T as QuickwitLogo, G as GigapipeLogo, S as QrynLogo, R as PrometheusLogo, F as OpenTelemetryLogo, Q as OracleLogo, P as OpsVerseLogo, z as OpenObserveLogo, y as OneUptimeLogo, O as ObserveLogo, N as NewRelicLogo, M as MiddlewareLogo, x as LumigoLogo, w as LokiLogo, v as LogzioLogo, u as LightstepLogo, L as Last9Logo, K as KloudmateLogo, J as JaegerLogo, I as InstanaLogo, t as HyperDxLogo, H as HoneycombLogo, s as GroundcoverLogo, r as GreptimeLogo, q as GrafanaLogo, p as GoogleCloudPlatformLogo, o as ElasticSearchLogo, E as ElasticApmLogo, n as DynatraceLogo, m as DatadogLogo, D as Dash0Logo, l as CoralogixLogo, c as AwsCloudwatchLogo, k as ClickhouseLogo, j as ChronosphereLogo, i as ChecklyLogo, C as CauselyLogo, h as BonreeLogo, B as BetterStackLogo, g as BlobStorageLogo, f as AxiomLogo, b as AppDynamicsLogo, a as AlibabaCloudLogo, A as AlaudaLogo, a6 as RulesIcon, a3 as ActionsIcon, a4 as DestinationsIcon, a7 as SourcesIcon, a5 as NamespacesIcon, V as VmLogo } from './index-ZTzxu5fz.js';
|
|
6
|
+
import { O as OdigosLogo } from './index-DxR7e2Cq.js';
|
|
7
7
|
import { s as safeJsonParse } from './index-BV85P9UP.js';
|
|
8
8
|
|
|
9
9
|
const compareCondition = (renderCondition, fields) => {
|
package/lib/snippets.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { A as AddButton } from './index-
|
|
2
|
-
export { E as EditButton, N as NoteBackToSummary } from './index-
|
|
1
|
+
export { A as AddButton } from './index-DXBePB-r.js';
|
|
2
|
+
export { E as EditButton, N as NoteBackToSummary } from './index-BWIOWlkS.js';
|
|
3
3
|
import 'react';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-Bw7RE2T2.js';
|
|
5
5
|
import './types.js';
|
|
6
6
|
import 'styled-components';
|
|
7
|
-
import './index-
|
|
8
|
-
import './index-
|
|
9
|
-
import './index-
|
|
7
|
+
import './index-CkTdd3MS.js';
|
|
8
|
+
import './index-CrXEzEGw.js';
|
|
9
|
+
import './index-DxR7e2Cq.js';
|
|
10
10
|
import './index-BV85P9UP.js';
|
|
11
|
-
import './useTransition-
|
|
11
|
+
import './useTransition-DanOnTji.js';
|
|
12
12
|
import 'react-dom';
|
package/lib/store.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { u as useDarkMode, a as useDataStreamStore, b as useDrawerStore, c as useEntityStore, d as useFilterStore, e as useInstrumentStore, f as useModalStore, g as useNotificationStore, h as usePendingStore, i as useSelectedStore, j as useSetupStore } from './index-
|
|
1
|
+
export { u as useDarkMode, a as useDataStreamStore, b as useDrawerStore, c as useEntityStore, d as useFilterStore, e as useInstrumentStore, f as useModalStore, g as useNotificationStore, h as usePendingStore, i as useSelectedStore, j as useSetupStore } from './index-Bw7RE2T2.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import './types.js';
|
|
4
4
|
import 'styled-components';
|
package/lib/theme.js
CHANGED
|
@@ -4,6 +4,7 @@ export declare enum InstrumentationRuleType {
|
|
|
4
4
|
CodeAttributes = "CodeAttributes",
|
|
5
5
|
HeadersCollection = "HeadersCollection",
|
|
6
6
|
PayloadCollection = "PayloadCollection",
|
|
7
|
+
CustomInstrumentation = "CustomInstrumentation",
|
|
7
8
|
UnknownType = "UnknownType"
|
|
8
9
|
}
|
|
9
10
|
export interface InstrumentationRule {
|
|
@@ -22,6 +23,7 @@ export interface InstrumentationRule {
|
|
|
22
23
|
codeAttributes?: CodeAttributes | null;
|
|
23
24
|
headersCollection?: HeadersCollection | null;
|
|
24
25
|
payloadCollection?: PayloadCollection | null;
|
|
26
|
+
customInstrumentations?: CustomInstrumentations | null;
|
|
25
27
|
}
|
|
26
28
|
export declare enum CodeAttributesKeyTypes {
|
|
27
29
|
Column = "column",
|
|
@@ -45,6 +47,16 @@ export declare enum HeadersCollectionKeyTypes {
|
|
|
45
47
|
export interface HeadersCollection {
|
|
46
48
|
[HeadersCollectionKeyTypes.HeaderKeys]?: string[] | null;
|
|
47
49
|
}
|
|
50
|
+
export declare enum CustomInstrumentationsKeyTypes {
|
|
51
|
+
Probes = "probes"
|
|
52
|
+
}
|
|
53
|
+
export interface CustomInstrumentationProbe {
|
|
54
|
+
className: string;
|
|
55
|
+
methodName: string;
|
|
56
|
+
}
|
|
57
|
+
export interface CustomInstrumentations {
|
|
58
|
+
[CustomInstrumentationsKeyTypes.Probes]?: CustomInstrumentationProbe[] | null;
|
|
59
|
+
}
|
|
48
60
|
interface HttpPayloadCollection {
|
|
49
61
|
mimeTypes?: string[] | null;
|
|
50
62
|
maxPayloadLength?: number | null;
|
package/lib/types.js
CHANGED
|
@@ -273,6 +273,7 @@ var InstrumentationRuleType;
|
|
|
273
273
|
InstrumentationRuleType["CodeAttributes"] = "CodeAttributes";
|
|
274
274
|
InstrumentationRuleType["HeadersCollection"] = "HeadersCollection";
|
|
275
275
|
InstrumentationRuleType["PayloadCollection"] = "PayloadCollection";
|
|
276
|
+
InstrumentationRuleType["CustomInstrumentation"] = "CustomInstrumentation";
|
|
276
277
|
InstrumentationRuleType["UnknownType"] = "UnknownType";
|
|
277
278
|
})(InstrumentationRuleType || (InstrumentationRuleType = {}));
|
|
278
279
|
// Code Attributes for Instrumentation Rules
|
|
@@ -285,11 +286,16 @@ var CodeAttributesKeyTypes;
|
|
|
285
286
|
CodeAttributesKeyTypes["Namespace"] = "namespace";
|
|
286
287
|
CodeAttributesKeyTypes["StackTrace"] = "stacktrace";
|
|
287
288
|
})(CodeAttributesKeyTypes || (CodeAttributesKeyTypes = {}));
|
|
288
|
-
//
|
|
289
|
+
// Headers Collection for Instrumentation Rules
|
|
289
290
|
var HeadersCollectionKeyTypes;
|
|
290
291
|
(function (HeadersCollectionKeyTypes) {
|
|
291
292
|
HeadersCollectionKeyTypes["HeaderKeys"] = "headerKeys";
|
|
292
293
|
})(HeadersCollectionKeyTypes || (HeadersCollectionKeyTypes = {}));
|
|
294
|
+
// Custom Instrumentations for Instrumentation Rules
|
|
295
|
+
var CustomInstrumentationsKeyTypes;
|
|
296
|
+
(function (CustomInstrumentationsKeyTypes) {
|
|
297
|
+
CustomInstrumentationsKeyTypes["Probes"] = "probes";
|
|
298
|
+
})(CustomInstrumentationsKeyTypes || (CustomInstrumentationsKeyTypes = {}));
|
|
293
299
|
var PayloadCollectionKeyTypes;
|
|
294
300
|
(function (PayloadCollectionKeyTypes) {
|
|
295
301
|
PayloadCollectionKeyTypes["HttpRequest"] = "httpRequest";
|
|
@@ -313,4 +319,4 @@ var K8sResourceKind;
|
|
|
313
319
|
K8sResourceKind["CronJob"] = "CronJob";
|
|
314
320
|
})(K8sResourceKind || (K8sResourceKind = {}));
|
|
315
321
|
|
|
316
|
-
export { ActionCategory, ActionKeyTypes, ActionType, AddNodeTypes, BooleanOperation, CodeAttributesKeyTypes, Crud, DestinationTypes, EdgeTypes, EntityTypes, FieldTypes, HeadersCollectionKeyTypes, InputTypes, InstrumentationRuleType, IntrumentationStatus, JsonOperation, K8sResourceKind, NodeTypes, NumberOperation, OtherEntityTypes, OtherStatus, PayloadCollectionKeyTypes, PlatformType, ProgrammingLanguages, SignalType, SortDirection, StatusType, StringOperation, Tier };
|
|
322
|
+
export { ActionCategory, ActionKeyTypes, ActionType, AddNodeTypes, BooleanOperation, CodeAttributesKeyTypes, Crud, CustomInstrumentationsKeyTypes, DestinationTypes, EdgeTypes, EntityTypes, FieldTypes, HeadersCollectionKeyTypes, InputTypes, InstrumentationRuleType, IntrumentationStatus, JsonOperation, K8sResourceKind, NodeTypes, NumberOperation, OtherEntityTypes, OtherStatus, PayloadCollectionKeyTypes, PlatformType, ProgrammingLanguages, SignalType, SortDirection, StatusType, StringOperation, Tier };
|
package/lib/{useSourceSelectionFormData-CMXqoHZs.js → useSourceSelectionFormData-BP-O55O3.js}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ActionKeyTypes, ActionType, StatusType, AddNodeTypes, EntityTypes, FieldTypes } from './types.js';
|
|
2
|
-
import { g as useNotificationStore, F as FORM_ALERTS, f as useModalStore, b as useDrawerStore, c as useEntityStore, a as useDataStreamStore, j as useSetupStore } from './index-
|
|
2
|
+
import { g as useNotificationStore, F as FORM_ALERTS, f as useModalStore, b as useDrawerStore, c as useEntityStore, a as useDataStreamStore, j as useSetupStore } from './index-Bw7RE2T2.js';
|
|
3
3
|
import { useState, useEffect, useMemo } from 'react';
|
|
4
4
|
import 'styled-components';
|
|
5
5
|
import { i as isEmpty, s as safeJsonParse } from './index-BV85P9UP.js';
|
|
6
|
-
import { b as useGenericForm } from './useTransition-
|
|
6
|
+
import { b as useGenericForm } from './useTransition-DanOnTji.js';
|
|
7
7
|
import { g as getIdFromSseTarget, i as isLegalK8sLabel, m as mapExportedSignals } from './index-BlZKWuxe.js';
|
|
8
8
|
|
|
9
9
|
const INITIAL$2 = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
2
|
-
import { g as useNotificationStore } from './index-
|
|
3
|
-
import { CodeAttributesKeyTypes, PayloadCollectionKeyTypes } from './types.js';
|
|
2
|
+
import { g as useNotificationStore } from './index-Bw7RE2T2.js';
|
|
3
|
+
import { CustomInstrumentationsKeyTypes, CodeAttributesKeyTypes, PayloadCollectionKeyTypes } from './types.js';
|
|
4
4
|
import styled from 'styled-components';
|
|
5
5
|
|
|
6
6
|
const useGenericForm = (initialFormData) => {
|
|
@@ -142,6 +142,10 @@ const INITIAL = {
|
|
|
142
142
|
[CodeAttributesKeyTypes.Namespace]: null,
|
|
143
143
|
[CodeAttributesKeyTypes.StackTrace]: null,
|
|
144
144
|
},
|
|
145
|
+
headersCollection: null,
|
|
146
|
+
customInstrumentations: {
|
|
147
|
+
[CustomInstrumentationsKeyTypes.Probes]: null,
|
|
148
|
+
},
|
|
145
149
|
};
|
|
146
150
|
const useInstrumentationRuleFormData = () => {
|
|
147
151
|
const { addNotification } = useNotificationStore();
|
|
@@ -152,7 +156,7 @@ const useInstrumentationRuleFormData = () => {
|
|
|
152
156
|
handleErrorChange(undefined, undefined, errors);
|
|
153
157
|
return ok;
|
|
154
158
|
};
|
|
155
|
-
const loadFormWithDrawerItem = ({ ruleName, notes, disabled, payloadCollection, codeAttributes }) => {
|
|
159
|
+
const loadFormWithDrawerItem = ({ ruleName, notes, disabled, payloadCollection, codeAttributes, headersCollection, customInstrumentations }) => {
|
|
156
160
|
const updatedData = {
|
|
157
161
|
...INITIAL,
|
|
158
162
|
ruleName,
|
|
@@ -177,6 +181,14 @@ const useInstrumentationRuleFormData = () => {
|
|
|
177
181
|
[CodeAttributesKeyTypes.StackTrace]: codeAttributes[CodeAttributesKeyTypes.StackTrace] || null,
|
|
178
182
|
};
|
|
179
183
|
}
|
|
184
|
+
if (headersCollection) {
|
|
185
|
+
updatedData['headersCollection'] = headersCollection;
|
|
186
|
+
}
|
|
187
|
+
if (customInstrumentations) {
|
|
188
|
+
updatedData['customInstrumentations'] = {
|
|
189
|
+
[CustomInstrumentationsKeyTypes.Probes]: customInstrumentations[CustomInstrumentationsKeyTypes.Probes] || null,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
180
192
|
handleFormChange(undefined, undefined, updatedData);
|
|
181
193
|
};
|
|
182
194
|
return {
|