diff --git a/dashboards-observability/public/components/application_analytics/components/flyout_components/availability_info_flyout.tsx b/dashboards-observability/public/components/application_analytics/components/flyout_components/availability_info_flyout.tsx
new file mode 100644
index 000000000..ec9d1ea71
--- /dev/null
+++ b/dashboards-observability/public/components/application_analytics/components/flyout_components/availability_info_flyout.tsx
@@ -0,0 +1,62 @@
+/*
+ * Copyright OpenSearch Contributors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import {
+ EuiFlyout,
+ EuiFlyoutHeader,
+ EuiTitle,
+ EuiFlyoutBody,
+ EuiText,
+ EuiCodeBlock,
+ EuiFlyoutFooter,
+ EuiButton,
+} from '@elastic/eui';
+import React from 'react';
+
+interface AvailabilityInfoFlyoutProps {
+ closeFlyout: () => void;
+}
+
+export function AvailabilityInfoFlyout(props: AvailabilityInfoFlyoutProps) {
+ const { closeFlyout } = props;
+
+ return (
+
+
+
+ Availability
+
+
+
+
+ Configure availability
+ Availability is the status of your application determined by availability levels set on a
+ time series metric. To create an availability level, you must configure the following:
+
+ - color: The color of the availability badge on the home page
+ - name: The text in the availability badge on the home page
+ - expression: Comparison operator to determine the availability
+ - value: Value to use when calculating availability
+
+ Configuring availability
+ By default, Application analytics shows results from the last 24 hours of your data. To
+ see data from a different timeframe, use the date and time selector.
+ Time series metric
A time series metric is any visualization that has a query that
+ spans over a timestamp and is a bar/line chart. Users can use the power of the PPL
+ language to define arbitrary conditions on their logs to create a visualization over time.
+ Example
+
+ {'source = | ... | ... | stats ... by span(, 1h)'}
+
+ Users can then choose Bar or Line in visualization
+ configurations to create a time series metric.
+
+
+
+ Close
+
+
+ );
+}
diff --git a/dashboards-observability/public/components/event_analytics/explorer/visualizations/config_panel/config_panes/config_controls/config_availability.tsx b/dashboards-observability/public/components/event_analytics/explorer/visualizations/config_panel/config_panes/config_controls/config_availability.tsx
index 1a0f9ade5..49ad1e221 100644
--- a/dashboards-observability/public/components/event_analytics/explorer/visualizations/config_panel/config_panes/config_controls/config_availability.tsx
+++ b/dashboards-observability/public/components/event_analytics/explorer/visualizations/config_panel/config_panes/config_controls/config_availability.tsx
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-import React, { useCallback } from 'react';
+import React, { useCallback, useState } from 'react';
import {
EuiButton,
EuiAccordion,
@@ -17,8 +17,10 @@ import {
EuiFieldText,
EuiSelect,
htmlIdGenerator,
+ EuiText,
} from '@elastic/eui';
import { isEmpty } from 'lodash';
+import { AvailabilityInfoFlyout } from '../../../../../../application_analytics/components/flyout_components/availability_info_flyout';
import { PPL_SPAN_REGEX } from '../../../../../../../../common/constants/shared';
export interface AvailabilityUnitType {
@@ -30,6 +32,8 @@ export interface AvailabilityUnitType {
}
export const ConfigAvailability = ({ visualizations, onConfigChange, vizState = {} }: any) => {
+ const [flyoutOpen, setFlyoutOpen] = useState(false);
+ const closeFlyout = () => setFlyoutOpen(false);
const addButtonText = '+ Add availability level';
const getAvailabilityUnit = () => {
return {
@@ -50,6 +54,13 @@ export const ConfigAvailability = ({ visualizations, onConfigChange, vizState =
{ value: '≠', text: '≠' },
];
+ const availabilityAccordionButton = (
+
+ Availability
+ setFlyoutOpen(true)} size="m" />
+
+ );
+
const hasSpanInApp =
visualizations.data.query.finalQuery.search(PPL_SPAN_REGEX) > 0 &&
visualizations.data.appData.fromApp &&
@@ -105,7 +116,7 @@ export const ConfigAvailability = ({ visualizations, onConfigChange, vizState =
+ {flyoutOpen && }
>
);
};