diff --git a/.gitignore b/.gitignore
index 5107685692..080a49ae37 100644
--- a/.gitignore
+++ b/.gitignore
@@ -66,6 +66,7 @@ e2e/.auth
# go
vendor/
**/main/**
+__debug_bin**
# git-town
.git-branches.toml
diff --git a/conf/example.yaml b/conf/example.yaml
index fbda035d8d..7c9f285da5 100644
--- a/conf/example.yaml
+++ b/conf/example.yaml
@@ -207,3 +207,11 @@ emailing:
key_file_path:
# The path to the certificate file.
cert_file_path:
+
+##################### Sharder (experimental) #####################
+sharder:
+ # Specifies the sharder provider to use.
+ provider: noop
+ single:
+ # The org id to which this instance belongs to.
+ org_id: org_id
diff --git a/ee/licensing/httplicensing/provider.go b/ee/licensing/httplicensing/provider.go
index 52a162143c..1cfdad4d37 100644
--- a/ee/licensing/httplicensing/provider.go
+++ b/ee/licensing/httplicensing/provider.go
@@ -3,13 +3,15 @@ package httplicensing
import (
"context"
"encoding/json"
- "github.com/SigNoz/signoz/ee/query-service/constants"
"time"
+ "github.com/SigNoz/signoz/ee/query-service/constants"
+
"github.com/SigNoz/signoz/ee/licensing/licensingstore/sqllicensingstore"
"github.com/SigNoz/signoz/pkg/errors"
"github.com/SigNoz/signoz/pkg/factory"
"github.com/SigNoz/signoz/pkg/licensing"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/types/featuretypes"
"github.com/SigNoz/signoz/pkg/types/licensetypes"
@@ -19,23 +21,31 @@ import (
)
type provider struct {
- store licensetypes.Store
- zeus zeus.Zeus
- config licensing.Config
- settings factory.ScopedProviderSettings
- stopChan chan struct{}
+ store licensetypes.Store
+ zeus zeus.Zeus
+ config licensing.Config
+ settings factory.ScopedProviderSettings
+ orgGetter organization.Getter
+ stopChan chan struct{}
}
-func NewProviderFactory(store sqlstore.SQLStore, zeus zeus.Zeus) factory.ProviderFactory[licensing.Licensing, licensing.Config] {
+func NewProviderFactory(store sqlstore.SQLStore, zeus zeus.Zeus, orgGetter organization.Getter) factory.ProviderFactory[licensing.Licensing, licensing.Config] {
return factory.NewProviderFactory(factory.MustNewName("http"), func(ctx context.Context, providerSettings factory.ProviderSettings, config licensing.Config) (licensing.Licensing, error) {
- return New(ctx, providerSettings, config, store, zeus)
+ return New(ctx, providerSettings, config, store, zeus, orgGetter)
})
}
-func New(ctx context.Context, ps factory.ProviderSettings, config licensing.Config, sqlstore sqlstore.SQLStore, zeus zeus.Zeus) (licensing.Licensing, error) {
+func New(ctx context.Context, ps factory.ProviderSettings, config licensing.Config, sqlstore sqlstore.SQLStore, zeus zeus.Zeus, orgGetter organization.Getter) (licensing.Licensing, error) {
settings := factory.NewScopedProviderSettings(ps, "github.com/SigNoz/signoz/ee/licensing/httplicensing")
licensestore := sqllicensingstore.New(sqlstore)
- return &provider{store: licensestore, zeus: zeus, config: config, settings: settings, stopChan: make(chan struct{})}, nil
+ return &provider{
+ store: licensestore,
+ zeus: zeus,
+ config: config,
+ settings: settings,
+ orgGetter: orgGetter,
+ stopChan: make(chan struct{}),
+ }, nil
}
func (provider *provider) Start(ctx context.Context) error {
@@ -67,13 +77,13 @@ func (provider *provider) Stop(ctx context.Context) error {
}
func (provider *provider) Validate(ctx context.Context) error {
- organizations, err := provider.store.ListOrganizations(ctx)
+ organizations, err := provider.orgGetter.ListByOwnedKeyRange(ctx)
if err != nil {
return err
}
- for _, organizationID := range organizations {
- err := provider.Refresh(ctx, organizationID)
+ for _, organization := range organizations {
+ err := provider.Refresh(ctx, organization.ID)
if err != nil {
return err
}
@@ -168,6 +178,11 @@ func (provider *provider) Refresh(ctx context.Context, organizationID valuer.UUI
return err
}
+ err = provider.InitFeatures(ctx, activeLicense.Features)
+ if err != nil {
+ return err
+ }
+
return nil
}
diff --git a/ee/licensing/licensingstore/sqllicensingstore/store.go b/ee/licensing/licensingstore/sqllicensingstore/store.go
index 5167a5fc00..9e8ea19d71 100644
--- a/ee/licensing/licensingstore/sqllicensingstore/store.go
+++ b/ee/licensing/licensingstore/sqllicensingstore/store.go
@@ -5,7 +5,6 @@ import (
"github.com/SigNoz/signoz/pkg/errors"
"github.com/SigNoz/signoz/pkg/sqlstore"
- "github.com/SigNoz/signoz/pkg/types"
"github.com/SigNoz/signoz/pkg/types/featuretypes"
"github.com/SigNoz/signoz/pkg/types/licensetypes"
"github.com/SigNoz/signoz/pkg/valuer"
@@ -82,31 +81,6 @@ func (store *store) Update(ctx context.Context, organizationID valuer.UUID, stor
return nil
}
-func (store *store) ListOrganizations(ctx context.Context) ([]valuer.UUID, error) {
- orgIDStrs := make([]string, 0)
- err := store.sqlstore.
- BunDB().
- NewSelect().
- Model(new(types.Organization)).
- Column("id").
- Scan(ctx, &orgIDStrs)
- if err != nil {
- return nil, err
- }
-
- orgIDs := make([]valuer.UUID, len(orgIDStrs))
- for idx, orgIDStr := range orgIDStrs {
- orgID, err := valuer.NewUUID(orgIDStr)
- if err != nil {
- return nil, err
- }
- orgIDs[idx] = orgID
- }
-
- return orgIDs, nil
-
-}
-
func (store *store) CreateFeature(ctx context.Context, storableFeature *featuretypes.StorableFeature) error {
_, err := store.
sqlstore.
diff --git a/ee/query-service/app/server.go b/ee/query-service/app/server.go
index 84f3f4a7f4..2b4d3754c6 100644
--- a/ee/query-service/app/server.go
+++ b/ee/query-service/app/server.go
@@ -20,6 +20,7 @@ import (
"github.com/SigNoz/signoz/pkg/alertmanager"
"github.com/SigNoz/signoz/pkg/cache"
"github.com/SigNoz/signoz/pkg/http/middleware"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/prometheus"
"github.com/SigNoz/signoz/pkg/signoz"
"github.com/SigNoz/signoz/pkg/sqlstore"
@@ -113,6 +114,7 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
serverOptions.SigNoz.SQLStore,
serverOptions.SigNoz.TelemetryStore,
serverOptions.SigNoz.Prometheus,
+ serverOptions.SigNoz.Modules.OrgGetter,
)
if err != nil {
@@ -157,7 +159,7 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
}
// start the usagemanager
- usageManager, err := usage.New(serverOptions.SigNoz.Licensing, serverOptions.SigNoz.TelemetryStore.ClickhouseDB(), serverOptions.SigNoz.Zeus, serverOptions.SigNoz.Modules.Organization)
+ usageManager, err := usage.New(serverOptions.SigNoz.Licensing, serverOptions.SigNoz.TelemetryStore.ClickhouseDB(), serverOptions.SigNoz.Zeus, serverOptions.SigNoz.Modules.OrgGetter)
if err != nil {
return nil, err
}
@@ -225,7 +227,7 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
&opAmpModel.AllAgents, agentConfMgr,
)
- orgs, err := apiHandler.Signoz.Modules.Organization.GetAll(context.Background())
+ orgs, err := apiHandler.Signoz.Modules.OrgGetter.ListByOwnedKeyRange(context.Background())
if err != nil {
return nil, err
}
@@ -240,11 +242,10 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
}
func (s *Server) createPrivateServer(apiHandler *api.APIHandler) (*http.Server, error) {
-
r := baseapp.NewRouter()
- r.Use(middleware.NewAuth(s.serverOptions.Jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}).Wrap)
- r.Use(middleware.NewAPIKey(s.serverOptions.SigNoz.SQLStore, []string{"SIGNOZ-API-KEY"}, s.serverOptions.SigNoz.Instrumentation.Logger()).Wrap)
+ r.Use(middleware.NewAuth(s.serverOptions.Jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}, s.serverOptions.SigNoz.Sharder, s.serverOptions.SigNoz.Instrumentation.Logger()).Wrap)
+ r.Use(middleware.NewAPIKey(s.serverOptions.SigNoz.SQLStore, []string{"SIGNOZ-API-KEY"}, s.serverOptions.SigNoz.Instrumentation.Logger(), s.serverOptions.SigNoz.Sharder).Wrap)
r.Use(middleware.NewTimeout(s.serverOptions.SigNoz.Instrumentation.Logger(),
s.serverOptions.Config.APIServer.Timeout.ExcludedRoutes,
s.serverOptions.Config.APIServer.Timeout.Default,
@@ -275,8 +276,8 @@ func (s *Server) createPublicServer(apiHandler *api.APIHandler, web web.Web) (*h
r := baseapp.NewRouter()
am := middleware.NewAuthZ(s.serverOptions.SigNoz.Instrumentation.Logger())
- r.Use(middleware.NewAuth(s.serverOptions.Jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}).Wrap)
- r.Use(middleware.NewAPIKey(s.serverOptions.SigNoz.SQLStore, []string{"SIGNOZ-API-KEY"}, s.serverOptions.SigNoz.Instrumentation.Logger()).Wrap)
+ r.Use(middleware.NewAuth(s.serverOptions.Jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}, s.serverOptions.SigNoz.Sharder, s.serverOptions.SigNoz.Instrumentation.Logger()).Wrap)
+ r.Use(middleware.NewAPIKey(s.serverOptions.SigNoz.SQLStore, []string{"SIGNOZ-API-KEY"}, s.serverOptions.SigNoz.Instrumentation.Logger(), s.serverOptions.SigNoz.Sharder).Wrap)
r.Use(middleware.NewTimeout(s.serverOptions.SigNoz.Instrumentation.Logger(),
s.serverOptions.Config.APIServer.Timeout.ExcludedRoutes,
s.serverOptions.Config.APIServer.Timeout.Default,
@@ -297,6 +298,7 @@ func (s *Server) createPublicServer(apiHandler *api.APIHandler, web web.Web) (*h
apiHandler.RegisterMessagingQueuesRoutes(r, am)
apiHandler.RegisterThirdPartyApiRoutes(r, am)
apiHandler.MetricExplorerRoutes(r, am)
+ apiHandler.RegisterTraceFunnelsRoutes(r, am)
c := cors.New(cors.Options{
AllowedOrigins: []string{"*"},
@@ -450,6 +452,7 @@ func makeRulesManager(
sqlstore sqlstore.SQLStore,
telemetryStore telemetrystore.TelemetryStore,
prometheus prometheus.Prometheus,
+ orgGetter organization.Getter,
) (*baserules.Manager, error) {
// create manager opts
managerOpts := &baserules.ManagerOptions{
@@ -465,6 +468,7 @@ func makeRulesManager(
PrepareTestRuleFunc: rules.TestNotification,
Alertmanager: alertmanager,
SQLStore: sqlstore,
+ OrgGetter: orgGetter,
}
// create Manager
diff --git a/ee/query-service/main.go b/ee/query-service/main.go
index 996b2ac0eb..6d9c3eeaf4 100644
--- a/ee/query-service/main.go
+++ b/ee/query-service/main.go
@@ -17,6 +17,7 @@ import (
"github.com/SigNoz/signoz/pkg/config/fileprovider"
"github.com/SigNoz/signoz/pkg/factory"
pkglicensing "github.com/SigNoz/signoz/pkg/licensing"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
baseconst "github.com/SigNoz/signoz/pkg/query-service/constants"
"github.com/SigNoz/signoz/pkg/signoz"
"github.com/SigNoz/signoz/pkg/sqlstore"
@@ -133,8 +134,8 @@ func main() {
zeus.Config(),
httpzeus.NewProviderFactory(),
licensing.Config(24*time.Hour, 3),
- func(sqlstore sqlstore.SQLStore, zeus pkgzeus.Zeus) factory.ProviderFactory[pkglicensing.Licensing, pkglicensing.Config] {
- return httplicensing.NewProviderFactory(sqlstore, zeus)
+ func(sqlstore sqlstore.SQLStore, zeus pkgzeus.Zeus, orgGetter organization.Getter) factory.ProviderFactory[pkglicensing.Licensing, pkglicensing.Config] {
+ return httplicensing.NewProviderFactory(sqlstore, zeus, orgGetter)
},
signoz.NewEmailingProviderFactories(),
signoz.NewCacheProviderFactories(),
diff --git a/ee/query-service/usage/manager.go b/ee/query-service/usage/manager.go
index c7ab151f80..ad8c8ec4ba 100644
--- a/ee/query-service/usage/manager.go
+++ b/ee/query-service/usage/manager.go
@@ -41,16 +41,16 @@ type Manager struct {
zeus zeus.Zeus
- organizationModule organization.Module
+ orgGetter organization.Getter
}
-func New(licenseService licensing.Licensing, clickhouseConn clickhouse.Conn, zeus zeus.Zeus, organizationModule organization.Module) (*Manager, error) {
+func New(licenseService licensing.Licensing, clickhouseConn clickhouse.Conn, zeus zeus.Zeus, orgGetter organization.Getter) (*Manager, error) {
m := &Manager{
- clickhouseConn: clickhouseConn,
- licenseService: licenseService,
- scheduler: gocron.NewScheduler(time.UTC).Every(1).Day().At("00:00"), // send usage every at 00:00 UTC
- zeus: zeus,
- organizationModule: organizationModule,
+ clickhouseConn: clickhouseConn,
+ licenseService: licenseService,
+ scheduler: gocron.NewScheduler(time.UTC).Every(1).Day().At("00:00"), // send usage every at 00:00 UTC
+ zeus: zeus,
+ orgGetter: orgGetter,
}
return m, nil
}
@@ -74,8 +74,7 @@ func (lm *Manager) Start(ctx context.Context) error {
return nil
}
func (lm *Manager) UploadUsage(ctx context.Context) {
-
- organizations, err := lm.organizationModule.GetAll(context.Background())
+ organizations, err := lm.orgGetter.ListByOwnedKeyRange(ctx)
if err != nil {
zap.L().Error("failed to get organizations", zap.Error(err))
return
diff --git a/frontend/src/AppRoutes/index.tsx b/frontend/src/AppRoutes/index.tsx
index a97fd7e933..32ccafa838 100644
--- a/frontend/src/AppRoutes/index.tsx
+++ b/frontend/src/AppRoutes/index.tsx
@@ -28,6 +28,7 @@ import { QueryBuilderProvider } from 'providers/QueryBuilder';
import { Suspense, useCallback, useEffect, useState } from 'react';
import { Route, Router, Switch } from 'react-router-dom';
import { CompatRouter } from 'react-router-dom-v5-compat';
+import { LicenseStatus } from 'types/api/licensesV3/getActive';
import { Userpilot } from 'userpilot';
import { extractDomain } from 'utils/app';
@@ -171,11 +172,13 @@ function App(): JSX.Element {
user &&
!!user.email
) {
+ // either the active API returns error with 404 or 501 and if it returns a terminated license means it's on basic plan
const isOnBasicPlan =
- activeLicenseFetchError &&
- [StatusCodes.NOT_FOUND, StatusCodes.NOT_IMPLEMENTED].includes(
- activeLicenseFetchError?.getHttpStatusCode(),
- );
+ (activeLicenseFetchError &&
+ [StatusCodes.NOT_FOUND, StatusCodes.NOT_IMPLEMENTED].includes(
+ activeLicenseFetchError?.getHttpStatusCode(),
+ )) ||
+ (activeLicense?.status && activeLicense.status === LicenseStatus.INVALID);
const isIdentifiedUser = getLocalStorageApi(LOCALSTORAGE.IS_IDENTIFIED_USER);
if (isLoggedInState && user && user.id && user.email && !isIdentifiedUser) {
@@ -190,6 +193,10 @@ function App(): JSX.Element {
updatedRoutes = updatedRoutes.filter(
(route) => route?.path !== ROUTES.BILLING,
);
+
+ if (isEnterpriseSelfHostedUser) {
+ updatedRoutes.push(LIST_LICENSES);
+ }
}
// always add support route for cloud users
updatedRoutes = [...updatedRoutes, SUPPORT_ROUTE];
diff --git a/frontend/src/components/LogDetail/index.tsx b/frontend/src/components/LogDetail/index.tsx
index b818823b5a..f6b5da802c 100644
--- a/frontend/src/components/LogDetail/index.tsx
+++ b/frontend/src/components/LogDetail/index.tsx
@@ -16,6 +16,7 @@ import JSONView from 'container/LogDetailedView/JsonView';
import Overview from 'container/LogDetailedView/Overview';
import {
aggregateAttributesResourcesToString,
+ escapeHtml,
removeEscapeCharacters,
unescapeString,
} from 'container/LogDetailedView/utils';
@@ -118,7 +119,7 @@ function LogDetail({
const htmlBody = useMemo(
() => ({
__html: convert.toHtml(
- dompurify.sanitize(unescapeString(log?.body || ''), {
+ dompurify.sanitize(unescapeString(escapeHtml(log?.body || '')), {
FORBID_TAGS: [...FORBID_DOM_PURIFY_TAGS],
}),
),
diff --git a/frontend/src/components/Logs/ListLogView/index.tsx b/frontend/src/components/Logs/ListLogView/index.tsx
index b30353696f..8526ce0be8 100644
--- a/frontend/src/components/Logs/ListLogView/index.tsx
+++ b/frontend/src/components/Logs/ListLogView/index.tsx
@@ -7,7 +7,7 @@ import cx from 'classnames';
import LogDetail from 'components/LogDetail';
import { VIEW_TYPES } from 'components/LogDetail/constants';
import { DATE_TIME_FORMATS } from 'constants/dateTimeFormats';
-import { unescapeString } from 'container/LogDetailedView/utils';
+import { escapeHtml, unescapeString } from 'container/LogDetailedView/utils';
import { FontSize } from 'container/OptionsMenu/types';
import dompurify from 'dompurify';
import { useActiveLog } from 'hooks/logs/useActiveLog';
@@ -58,7 +58,7 @@ function LogGeneralField({
const html = useMemo(
() => ({
__html: convert.toHtml(
- dompurify.sanitize(unescapeString(fieldValue), {
+ dompurify.sanitize(unescapeString(escapeHtml(fieldValue)), {
FORBID_TAGS: [...FORBID_DOM_PURIFY_TAGS],
}),
),
diff --git a/frontend/src/components/Logs/RawLogView/index.tsx b/frontend/src/components/Logs/RawLogView/index.tsx
index 897dbe98a7..9a305904a6 100644
--- a/frontend/src/components/Logs/RawLogView/index.tsx
+++ b/frontend/src/components/Logs/RawLogView/index.tsx
@@ -5,7 +5,7 @@ import { DrawerProps } from 'antd';
import LogDetail from 'components/LogDetail';
import { VIEW_TYPES, VIEWS } from 'components/LogDetail/constants';
import { DATE_TIME_FORMATS } from 'constants/dateTimeFormats';
-import { unescapeString } from 'container/LogDetailedView/utils';
+import { escapeHtml, unescapeString } from 'container/LogDetailedView/utils';
import LogsExplorerContext from 'container/LogsExplorerContext';
import dompurify from 'dompurify';
import { useActiveLog } from 'hooks/logs/useActiveLog';
@@ -177,7 +177,7 @@ function RawLogView({
const html = useMemo(
() => ({
__html: convert.toHtml(
- dompurify.sanitize(unescapeString(text), {
+ dompurify.sanitize(unescapeString(escapeHtml(text)), {
FORBID_TAGS: [...FORBID_DOM_PURIFY_TAGS],
}),
),
diff --git a/frontend/src/container/LogDetailedView/TableView/TableViewActions.tsx b/frontend/src/container/LogDetailedView/TableView/TableViewActions.tsx
index c99426ef54..ad40981a34 100644
--- a/frontend/src/container/LogDetailedView/TableView/TableViewActions.tsx
+++ b/frontend/src/container/LogDetailedView/TableView/TableViewActions.tsx
@@ -21,8 +21,10 @@ import { FORBID_DOM_PURIFY_TAGS } from 'utils/app';
import { DataType } from '../TableView';
import {
+ escapeHtml,
filterKeyForField,
jsonToDataNodes,
+ parseFieldValue,
recursiveParseJSON,
removeEscapeCharacters,
unescapeString,
@@ -85,7 +87,7 @@ export function TableViewActions(
record.field === 'body'
? {
__html: convert.toHtml(
- dompurify.sanitize(unescapeString(record.value), {
+ dompurify.sanitize(unescapeString(escapeHtml(record.value)), {
FORBID_TAGS: [...FORBID_DOM_PURIFY_TAGS],
}),
),
@@ -155,7 +157,11 @@ export function TableViewActions(
)
}
- onClick={onClickHandler(OPERATORS['='], fieldFilterKey, fieldData.value)}
+ onClick={onClickHandler(
+ OPERATORS['='],
+ fieldFilterKey,
+ parseFieldValue(fieldData.value),
+ )}
/>
@@ -171,7 +177,7 @@ export function TableViewActions(
onClick={onClickHandler(
OPERATORS['!='],
fieldFilterKey,
- fieldData.value,
+ parseFieldValue(fieldData.value),
)}
/>
diff --git a/frontend/src/container/LogDetailedView/utils.tsx b/frontend/src/container/LogDetailedView/utils.tsx
index 05d65259f6..77f765a85e 100644
--- a/frontend/src/container/LogDetailedView/utils.tsx
+++ b/frontend/src/container/LogDetailedView/utils.tsx
@@ -259,6 +259,24 @@ export const getDataTypes = (value: unknown): DataTypes => {
return determineType(value);
};
+// prevent html rendering in the value
+export const escapeHtml = (unsafe: string): string =>
+ unsafe
+ .replace(/&/g, '&')
+ .replace(//g, '>')
+ .replace(/"/g, '"')
+ .replace(/'/g, ''');
+
+// parse field value to remove escaping characters
+export const parseFieldValue = (value: string): string => {
+ try {
+ return JSON.parse(value);
+ } catch (error) {
+ return value;
+ }
+};
+
// now we do not want to render colors everywhere like in tooltip and monaco editor hence we remove such codes to make
// the log line readable
export const removeEscapeCharacters = (str: string): string =>
diff --git a/frontend/src/container/LogsExplorerViews/index.tsx b/frontend/src/container/LogsExplorerViews/index.tsx
index d92457ae43..1050b9f598 100644
--- a/frontend/src/container/LogsExplorerViews/index.tsx
+++ b/frontend/src/container/LogsExplorerViews/index.tsx
@@ -28,16 +28,12 @@ import LogsExplorerTable from 'container/LogsExplorerTable';
import { useOptionsMenu } from 'container/OptionsMenu';
import TimeSeriesView from 'container/TimeSeriesView/TimeSeriesView';
import dayjs from 'dayjs';
-import { useUpdateDashboard } from 'hooks/dashboard/useUpdateDashboard';
-import { addEmptyWidgetInDashboardJSONWithQuery } from 'hooks/dashboard/utils';
import { useCopyLogLink } from 'hooks/logs/useCopyLogLink';
import { useGetExplorerQueryRange } from 'hooks/queryBuilder/useGetExplorerQueryRange';
import { useGetPanelTypesQueryParam } from 'hooks/queryBuilder/useGetPanelTypesQueryParam';
import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder';
-import useAxiosError from 'hooks/useAxiosError';
import useClickOutside from 'hooks/useClickOutside';
import { useHandleExplorerTabChange } from 'hooks/useHandleExplorerTabChange';
-import { useNotifications } from 'hooks/useNotifications';
import { useSafeNavigate } from 'hooks/useSafeNavigate';
import useUrlQueryData from 'hooks/useUrlQueryData';
import { FlatLogData } from 'lib/logs/flatLogData';
@@ -98,7 +94,6 @@ function LogsExplorerViews({
// eslint-disable-next-line @typescript-eslint/no-explicit-any
chartQueryKeyRef: MutableRefObject;
}): JSX.Element {
- const { notifications } = useNotifications();
const { safeNavigate } = useSafeNavigate();
// this is to respect the panel type present in the URL rather than defaulting it to list always.
@@ -141,8 +136,6 @@ function LogsExplorerViews({
const [queryId, setQueryId] = useState(v4());
const [queryStats, setQueryStats] = useState();
- const handleAxisError = useAxiosError();
-
const listQuery = useMemo(() => {
if (!stagedQuery || stagedQuery.builder.queryData.length < 1) return null;
@@ -396,11 +389,6 @@ function LogsExplorerViews({
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [data?.payload]);
- const {
- mutate: updateDashboard,
- isLoading: isUpdateDashboardLoading,
- } = useUpdateDashboard();
-
const getUpdatedQueryForExport = useCallback((): Query => {
const updatedQuery = cloneDeep(currentQuery);
@@ -424,68 +412,22 @@ function LogsExplorerViews({
? getUpdatedQueryForExport()
: exportDefaultQuery;
- const updatedDashboard = addEmptyWidgetInDashboardJSONWithQuery(
- dashboard,
- query,
- widgetId,
- panelTypeParam,
- options.selectColumns,
- );
-
logEvent('Logs Explorer: Add to dashboard successful', {
panelType,
isNewDashboard,
dashboardName: dashboard?.data?.title,
});
- updateDashboard(updatedDashboard, {
- onSuccess: (data) => {
- if (data.error) {
- const message =
- data.error === 'feature usage exceeded' ? (
-
- Panel limit exceeded for {DataSource.LOGS} in community edition. Please
- checkout our paid plans{' '}
-
- here
-
-
- ) : (
- data.error
- );
- notifications.error({
- message,
- });
-
- return;
- }
-
- const dashboardEditView = generateExportToDashboardLink({
- query,
- panelType: panelTypeParam,
- dashboardId: data.payload?.uuid || '',
- widgetId,
- });
-
- safeNavigate(dashboardEditView);
- },
- onError: handleAxisError,
+ const dashboardEditView = generateExportToDashboardLink({
+ query,
+ panelType: panelTypeParam,
+ dashboardId: dashboard.uuid,
+ widgetId,
});
+
+ safeNavigate(dashboardEditView);
},
- [
- getUpdatedQueryForExport,
- exportDefaultQuery,
- options.selectColumns,
- safeNavigate,
- notifications,
- panelType,
- updateDashboard,
- handleAxisError,
- ],
+ [getUpdatedQueryForExport, exportDefaultQuery, safeNavigate, panelType],
);
useEffect(() => {
@@ -811,7 +753,6 @@ function LogsExplorerViews({
diff --git a/frontend/src/container/MetricsExplorer/Explorer/Explorer.tsx b/frontend/src/container/MetricsExplorer/Explorer/Explorer.tsx
index 1aed2e567b..958ea7cfc4 100644
--- a/frontend/src/container/MetricsExplorer/Explorer/Explorer.tsx
+++ b/frontend/src/container/MetricsExplorer/Explorer/Explorer.tsx
@@ -2,18 +2,12 @@ import './Explorer.styles.scss';
import * as Sentry from '@sentry/react';
import { Switch } from 'antd';
-import axios from 'axios';
-import { LOCALSTORAGE } from 'constants/localStorage';
import { initialQueriesMap, PANEL_TYPES } from 'constants/queryBuilder';
import ExplorerOptionWrapper from 'container/ExplorerOptions/ExplorerOptionWrapper';
-import { useOptionsMenu } from 'container/OptionsMenu';
import RightToolbarActions from 'container/QueryBuilder/components/ToolbarActions/RightToolbarActions';
import DateTimeSelector from 'container/TopNav/DateTimeSelectionV2';
-import { useUpdateDashboard } from 'hooks/dashboard/useUpdateDashboard';
-import { addEmptyWidgetInDashboardJSONWithQuery } from 'hooks/dashboard/utils';
import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder';
import { useShareBuilderUrl } from 'hooks/queryBuilder/useShareBuilderUrl';
-import { useNotifications } from 'hooks/useNotifications';
import { useSafeNavigate } from 'hooks/useSafeNavigate';
import ErrorBoundaryFallback from 'pages/ErrorBoundaryFallback/ErrorBoundaryFallback';
import { useCallback, useMemo, useState } from 'react';
@@ -39,13 +33,6 @@ function Explorer(): JSX.Element {
currentQuery,
} = useQueryBuilder();
const { safeNavigate } = useSafeNavigate();
- const { notifications } = useNotifications();
- const { mutate: updateDashboard, isLoading } = useUpdateDashboard();
- const { options } = useOptionsMenu({
- storageKey: LOCALSTORAGE.METRICS_LIST_OPTIONS,
- dataSource: DataSource.METRICS,
- aggregateOperator: 'noop',
- });
const [searchParams, setSearchParams] = useSearchParams();
const isOneChartPerQueryEnabled =
@@ -86,59 +73,16 @@ function Explorer(): JSX.Element {
const widgetId = uuid();
- const updatedDashboard = addEmptyWidgetInDashboardJSONWithQuery(
- dashboard,
- queryToExport || exportDefaultQuery,
+ const dashboardEditView = generateExportToDashboardLink({
+ query: queryToExport || exportDefaultQuery,
+ panelType: PANEL_TYPES.TIME_SERIES,
+ dashboardId: dashboard?.uuid || '',
widgetId,
- PANEL_TYPES.TIME_SERIES,
- options.selectColumns,
- );
-
- updateDashboard(updatedDashboard, {
- onSuccess: (data) => {
- if (data.error) {
- const message =
- data.error === 'feature usage exceeded' ? (
-
- Panel limit exceeded for {DataSource.METRICS} in community edition.
- Please checkout our paid plans{' '}
-
- here
-
-
- ) : (
- data.error
- );
- notifications.error({
- message,
- });
-
- return;
- }
- const dashboardEditView = generateExportToDashboardLink({
- query: queryToExport || exportDefaultQuery,
- panelType: PANEL_TYPES.TIME_SERIES,
- dashboardId: data.payload?.uuid || '',
- widgetId,
- });
-
- safeNavigate(dashboardEditView);
- },
- onError: (error) => {
- if (axios.isAxiosError(error)) {
- notifications.error({
- message: error.message,
- });
- }
- },
});
+
+ safeNavigate(dashboardEditView);
},
- // eslint-disable-next-line react-hooks/exhaustive-deps
- [exportDefaultQuery, notifications, updateDashboard],
+ [exportDefaultQuery, safeNavigate],
);
const splitedQueries = useMemo(
@@ -201,7 +145,6 @@ function Explorer(): JSX.Element {
{
+ const getUpdatedQueryForExport = useCallback((): Query => {
const updatedQuery = cloneDeep(currentQuery);
set(
@@ -136,7 +128,7 @@ function TracesExplorer(): JSX.Element {
);
return updatedQuery;
- };
+ }, [currentQuery, options.selectColumns]);
const handleExport = useCallback(
(dashboard: Dashboard | null, isNewDashboard?: boolean): void => {
@@ -153,65 +145,22 @@ function TracesExplorer(): JSX.Element {
? getUpdatedQueryForExport()
: exportDefaultQuery;
- const updatedDashboard = addEmptyWidgetInDashboardJSONWithQuery(
- dashboard,
- query,
- widgetId,
- panelTypeParam,
- options.selectColumns,
- );
-
logEvent('Traces Explorer: Add to dashboard successful', {
panelType,
isNewDashboard,
dashboardName: dashboard?.data?.title,
});
- updateDashboard(updatedDashboard, {
- onSuccess: (data) => {
- if (data.error) {
- const message =
- data.error === 'feature usage exceeded' ? (
-
- Panel limit exceeded for {DataSource.TRACES} in community edition.
- Please checkout our paid plans{' '}
-
- here
-
-
- ) : (
- data.error
- );
- notifications.error({
- message,
- });
-
- return;
- }
- const dashboardEditView = generateExportToDashboardLink({
- query,
- panelType: panelTypeParam,
- dashboardId: data.payload?.uuid || '',
- widgetId,
- });
-
- safeNavigate(dashboardEditView);
- },
- onError: (error) => {
- if (axios.isAxiosError(error)) {
- notifications.error({
- message: error.message,
- });
- }
- },
+ const dashboardEditView = generateExportToDashboardLink({
+ query,
+ panelType: panelTypeParam,
+ dashboardId: dashboard?.uuid || '',
+ widgetId,
});
+
+ safeNavigate(dashboardEditView);
},
- // eslint-disable-next-line react-hooks/exhaustive-deps
- [exportDefaultQuery, notifications, panelType, updateDashboard],
+ [exportDefaultQuery, panelType, safeNavigate, getUpdatedQueryForExport],
);
useShareBuilderUrl(defaultQuery);
@@ -282,11 +231,7 @@ function TracesExplorer(): JSX.Element {
-
+
diff --git a/frontend/src/types/api/licensesV3/getActive.ts b/frontend/src/types/api/licensesV3/getActive.ts
index a26d766064..be0d488b5e 100644
--- a/frontend/src/types/api/licensesV3/getActive.ts
+++ b/frontend/src/types/api/licensesV3/getActive.ts
@@ -6,6 +6,7 @@ export enum LicenseEvent {
export enum LicenseStatus {
SUSPENDED = 'SUSPENDED',
VALID = 'VALID',
+ INVALID = 'INVALID',
}
export enum LicenseState {
diff --git a/pkg/alertmanager/alertmanagerstore/sqlalertmanagerstore/config.go b/pkg/alertmanager/alertmanagerstore/sqlalertmanagerstore/config.go
index 1175d9c369..c2bbc69876 100644
--- a/pkg/alertmanager/alertmanagerstore/sqlalertmanagerstore/config.go
+++ b/pkg/alertmanager/alertmanagerstore/sqlalertmanagerstore/config.go
@@ -67,23 +67,6 @@ func (store *config) Set(ctx context.Context, config *alertmanagertypes.Config,
}, opts...)
}
-func (store *config) ListOrgs(ctx context.Context) ([]string, error) {
- var orgIDs []string
-
- err := store.
- sqlstore.
- BunDB().
- NewSelect().
- Table("organizations").
- ColumnExpr("id").
- Scan(ctx, &orgIDs)
- if err != nil {
- return nil, err
- }
-
- return orgIDs, nil
-}
-
func (store *config) CreateChannel(ctx context.Context, channel *alertmanagertypes.Channel, opts ...alertmanagertypes.StoreOption) error {
return store.wrap(ctx, func(ctx context.Context) error {
if _, err := store.
diff --git a/pkg/alertmanager/legacyalertmanager/provider.go b/pkg/alertmanager/legacyalertmanager/provider.go
index b8fbba68e3..b4e1453b31 100644
--- a/pkg/alertmanager/legacyalertmanager/provider.go
+++ b/pkg/alertmanager/legacyalertmanager/provider.go
@@ -14,6 +14,7 @@ import (
"github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerbatcher"
"github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerstore/sqlalertmanagerstore"
"github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/types/alertmanagertypes"
"github.com/SigNoz/signoz/pkg/valuer"
@@ -57,16 +58,17 @@ type provider struct {
configStore alertmanagertypes.ConfigStore
batcher *alertmanagerbatcher.Batcher
url *url.URL
+ orgGetter organization.Getter
orgID string
}
-func NewFactory(sqlstore sqlstore.SQLStore) factory.ProviderFactory[alertmanager.Alertmanager, alertmanager.Config] {
+func NewFactory(sqlstore sqlstore.SQLStore, orgGetter organization.Getter) factory.ProviderFactory[alertmanager.Alertmanager, alertmanager.Config] {
return factory.NewProviderFactory(factory.MustNewName("legacy"), func(ctx context.Context, settings factory.ProviderSettings, config alertmanager.Config) (alertmanager.Alertmanager, error) {
- return New(ctx, settings, config, sqlstore)
+ return New(ctx, settings, config, sqlstore, orgGetter)
})
}
-func New(ctx context.Context, providerSettings factory.ProviderSettings, config alertmanager.Config, sqlstore sqlstore.SQLStore) (*provider, error) {
+func New(ctx context.Context, providerSettings factory.ProviderSettings, config alertmanager.Config, sqlstore sqlstore.SQLStore, orgGetter organization.Getter) (*provider, error) {
settings := factory.NewScopedProviderSettings(providerSettings, "github.com/SigNoz/signoz/pkg/alertmanager/legacyalertmanager")
configStore := sqlalertmanagerstore.NewConfigStore(sqlstore)
@@ -92,7 +94,7 @@ func (provider *provider) Start(ctx context.Context) error {
// For the first time, we need to get the orgID from the config store.
// Since this is the legacy alertmanager, we get the first org from the store.
if provider.orgID == "" {
- orgIDs, err := provider.configStore.ListOrgs(ctx)
+ orgIDs, err := provider.orgGetter.ListByOwnedKeyRange(ctx)
if err != nil {
provider.settings.Logger().ErrorContext(ctx, "failed to send alerts to alertmanager", "error", err)
continue
@@ -103,7 +105,7 @@ func (provider *provider) Start(ctx context.Context) error {
continue
}
- provider.orgID = orgIDs[0]
+ provider.orgID = orgIDs[0].ID.String()
}
if err := provider.putAlerts(ctx, provider.orgID, alerts); err != nil {
diff --git a/pkg/alertmanager/service.go b/pkg/alertmanager/service.go
index d8fdd74b28..c67c9e9edc 100644
--- a/pkg/alertmanager/service.go
+++ b/pkg/alertmanager/service.go
@@ -7,6 +7,7 @@ import (
"github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerserver"
"github.com/SigNoz/signoz/pkg/errors"
"github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/types/alertmanagertypes"
)
@@ -20,6 +21,9 @@ type Service struct {
// configStore is the config store for the alertmanager service
configStore alertmanagertypes.ConfigStore
+ // organization is the organization module for the alertmanager service
+ orgGetter organization.Getter
+
// settings is the settings for the alertmanager service
settings factory.ScopedProviderSettings
@@ -30,11 +34,19 @@ type Service struct {
serversMtx sync.RWMutex
}
-func New(ctx context.Context, settings factory.ScopedProviderSettings, config alertmanagerserver.Config, stateStore alertmanagertypes.StateStore, configStore alertmanagertypes.ConfigStore) *Service {
+func New(
+ ctx context.Context,
+ settings factory.ScopedProviderSettings,
+ config alertmanagerserver.Config,
+ stateStore alertmanagertypes.StateStore,
+ configStore alertmanagertypes.ConfigStore,
+ orgGetter organization.Getter,
+) *Service {
service := &Service{
config: config,
stateStore: stateStore,
configStore: configStore,
+ orgGetter: orgGetter,
settings: settings,
servers: make(map[string]*alertmanagerserver.Server),
serversMtx: sync.RWMutex{},
@@ -44,38 +56,38 @@ func New(ctx context.Context, settings factory.ScopedProviderSettings, config al
}
func (service *Service) SyncServers(ctx context.Context) error {
- orgIDs, err := service.configStore.ListOrgs(ctx)
+ orgs, err := service.orgGetter.ListByOwnedKeyRange(ctx)
if err != nil {
return err
}
service.serversMtx.Lock()
- for _, orgID := range orgIDs {
- config, err := service.getConfig(ctx, orgID)
+ for _, org := range orgs {
+ config, err := service.getConfig(ctx, org.ID.StringValue())
if err != nil {
- service.settings.Logger().ErrorContext(ctx, "failed to get alertmanager config for org", "org_id", orgID, "error", err)
+ service.settings.Logger().ErrorContext(ctx, "failed to get alertmanager config for org", "org_id", org.ID.StringValue(), "error", err)
continue
}
// If the server is not present, create it and sync the config
- if _, ok := service.servers[orgID]; !ok {
- server, err := service.newServer(ctx, orgID)
+ if _, ok := service.servers[org.ID.StringValue()]; !ok {
+ server, err := service.newServer(ctx, org.ID.StringValue())
if err != nil {
- service.settings.Logger().ErrorContext(ctx, "failed to create alertmanager server", "org_id", orgID, "error", err)
+ service.settings.Logger().ErrorContext(ctx, "failed to create alertmanager server", "org_id", org.ID.StringValue(), "error", err)
continue
}
- service.servers[orgID] = server
+ service.servers[org.ID.StringValue()] = server
}
- if service.servers[orgID].Hash() == config.StoreableConfig().Hash {
- service.settings.Logger().DebugContext(ctx, "skipping alertmanager sync for org", "org_id", orgID, "hash", config.StoreableConfig().Hash)
+ if service.servers[org.ID.StringValue()].Hash() == config.StoreableConfig().Hash {
+ service.settings.Logger().DebugContext(ctx, "skipping alertmanager sync for org", "org_id", org.ID.StringValue(), "hash", config.StoreableConfig().Hash)
continue
}
- err = service.servers[orgID].SetConfig(ctx, config)
+ err = service.servers[org.ID.StringValue()].SetConfig(ctx, config)
if err != nil {
- service.settings.Logger().ErrorContext(ctx, "failed to set config for alertmanager server", "org_id", orgID, "error", err)
+ service.settings.Logger().ErrorContext(ctx, "failed to set config for alertmanager server", "org_id", org.ID.StringValue(), "error", err)
continue
}
}
diff --git a/pkg/alertmanager/signozalertmanager/provider.go b/pkg/alertmanager/signozalertmanager/provider.go
index c0b285358f..8c3c0872ae 100644
--- a/pkg/alertmanager/signozalertmanager/provider.go
+++ b/pkg/alertmanager/signozalertmanager/provider.go
@@ -8,6 +8,7 @@ import (
"github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerstore/sqlalertmanagerstore"
"github.com/SigNoz/signoz/pkg/errors"
"github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/types/alertmanagertypes"
"github.com/SigNoz/signoz/pkg/valuer"
@@ -22,13 +23,13 @@ type provider struct {
stopC chan struct{}
}
-func NewFactory(sqlstore sqlstore.SQLStore) factory.ProviderFactory[alertmanager.Alertmanager, alertmanager.Config] {
+func NewFactory(sqlstore sqlstore.SQLStore, orgGetter organization.Getter) factory.ProviderFactory[alertmanager.Alertmanager, alertmanager.Config] {
return factory.NewProviderFactory(factory.MustNewName("signoz"), func(ctx context.Context, settings factory.ProviderSettings, config alertmanager.Config) (alertmanager.Alertmanager, error) {
- return New(ctx, settings, config, sqlstore)
+ return New(ctx, settings, config, sqlstore, orgGetter)
})
}
-func New(ctx context.Context, providerSettings factory.ProviderSettings, config alertmanager.Config, sqlstore sqlstore.SQLStore) (*provider, error) {
+func New(ctx context.Context, providerSettings factory.ProviderSettings, config alertmanager.Config, sqlstore sqlstore.SQLStore, orgGetter organization.Getter) (*provider, error) {
settings := factory.NewScopedProviderSettings(providerSettings, "github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager")
configStore := sqlalertmanagerstore.NewConfigStore(sqlstore)
stateStore := sqlalertmanagerstore.NewStateStore(sqlstore)
@@ -40,6 +41,7 @@ func New(ctx context.Context, providerSettings factory.ProviderSettings, config
config.Signoz.Config,
stateStore,
configStore,
+ orgGetter,
),
settings: settings,
config: config,
diff --git a/pkg/http/middleware/api_key.go b/pkg/http/middleware/api_key.go
index 01e1981bd7..0d53b736bc 100644
--- a/pkg/http/middleware/api_key.go
+++ b/pkg/http/middleware/api_key.go
@@ -5,9 +5,15 @@ import (
"net/http"
"time"
+ "github.com/SigNoz/signoz/pkg/sharder"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/types"
"github.com/SigNoz/signoz/pkg/types/authtypes"
+ "github.com/SigNoz/signoz/pkg/valuer"
+)
+
+const (
+ apiKeyCrossOrgMessage string = "::API-KEY-CROSS-ORG::"
)
type APIKey struct {
@@ -15,10 +21,11 @@ type APIKey struct {
uuid *authtypes.UUID
headers []string
logger *slog.Logger
+ sharder sharder.Sharder
}
-func NewAPIKey(store sqlstore.SQLStore, headers []string, logger *slog.Logger) *APIKey {
- return &APIKey{store: store, uuid: authtypes.NewUUID(), headers: headers, logger: logger}
+func NewAPIKey(store sqlstore.SQLStore, headers []string, logger *slog.Logger, sharder sharder.Sharder) *APIKey {
+ return &APIKey{store: store, uuid: authtypes.NewUUID(), headers: headers, logger: logger, sharder: sharder}
}
func (a *APIKey) Wrap(next http.Handler) http.Handler {
@@ -36,13 +43,20 @@ func (a *APIKey) Wrap(next http.Handler) http.Handler {
next.ServeHTTP(w, r)
return
}
+
apiKeyToken, ok := authtypes.UUIDFromContext(ctx)
if !ok {
next.ServeHTTP(w, r)
return
}
- err = a.store.BunDB().NewSelect().Model(&apiKey).Where("token = ?", apiKeyToken).Scan(r.Context())
+ err = a.
+ store.
+ BunDB().
+ NewSelect().
+ Model(&apiKey).
+ Where("token = ?", apiKeyToken).
+ Scan(r.Context())
if err != nil {
next.ServeHTTP(w, r)
return
@@ -71,6 +85,18 @@ func (a *APIKey) Wrap(next http.Handler) http.Handler {
ctx = authtypes.NewContextWithClaims(ctx, jwt)
+ claims, err := authtypes.ClaimsFromContext(ctx)
+ if err != nil {
+ next.ServeHTTP(w, r)
+ return
+ }
+
+ if err := a.sharder.IsMyOwnedKey(r.Context(), types.NewOrganizationKey(valuer.MustNewUUID(claims.OrgID))); err != nil {
+ a.logger.ErrorContext(r.Context(), apiKeyCrossOrgMessage, "claims", claims, "error", err)
+ next.ServeHTTP(w, r)
+ return
+ }
+
r = r.WithContext(ctx)
next.ServeHTTP(w, r)
diff --git a/pkg/http/middleware/auth.go b/pkg/http/middleware/auth.go
index 491ccb93f1..8e6a4e3a03 100644
--- a/pkg/http/middleware/auth.go
+++ b/pkg/http/middleware/auth.go
@@ -1,18 +1,28 @@
package middleware
import (
+ "log/slog"
"net/http"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/types"
"github.com/SigNoz/signoz/pkg/types/authtypes"
+ "github.com/SigNoz/signoz/pkg/valuer"
+)
+
+const (
+ authCrossOrgMessage string = "::AUTH-CROSS-ORG::"
)
type Auth struct {
jwt *authtypes.JWT
headers []string
+ sharder sharder.Sharder
+ logger *slog.Logger
}
-func NewAuth(jwt *authtypes.JWT, headers []string) *Auth {
- return &Auth{jwt: jwt, headers: headers}
+func NewAuth(jwt *authtypes.JWT, headers []string, sharder sharder.Sharder, logger *slog.Logger) *Auth {
+ return &Auth{jwt: jwt, headers: headers, sharder: sharder, logger: logger}
}
func (a *Auth) Wrap(next http.Handler) http.Handler {
@@ -28,6 +38,18 @@ func (a *Auth) Wrap(next http.Handler) http.Handler {
return
}
+ claims, err := authtypes.ClaimsFromContext(ctx)
+ if err != nil {
+ next.ServeHTTP(w, r)
+ return
+ }
+
+ if err := a.sharder.IsMyOwnedKey(r.Context(), types.NewOrganizationKey(valuer.MustNewUUID(claims.OrgID))); err != nil {
+ a.logger.ErrorContext(r.Context(), authCrossOrgMessage, "claims", claims, "error", err)
+ next.ServeHTTP(w, r)
+ return
+ }
+
r = r.WithContext(ctx)
next.ServeHTTP(w, r)
diff --git a/pkg/modules/apdex/apdex.go b/pkg/modules/apdex/apdex.go
index 9b23334f36..ed618f0670 100644
--- a/pkg/modules/apdex/apdex.go
+++ b/pkg/modules/apdex/apdex.go
@@ -4,13 +4,13 @@ import (
"context"
"net/http"
- "github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/types/apdextypes"
)
type Module interface {
- Get(context.Context, string, []string) ([]*types.ApdexSettings, error)
+ Get(context.Context, string, []string) ([]*apdextypes.Settings, error)
- Set(context.Context, string, *types.ApdexSettings) error
+ Set(context.Context, string, *apdextypes.Settings) error
}
type Handler interface {
diff --git a/pkg/modules/apdex/implapdex/handler.go b/pkg/modules/apdex/implapdex/handler.go
index effa4c537d..38030cda70 100644
--- a/pkg/modules/apdex/implapdex/handler.go
+++ b/pkg/modules/apdex/implapdex/handler.go
@@ -9,7 +9,7 @@ import (
"github.com/SigNoz/signoz/pkg/http/render"
"github.com/SigNoz/signoz/pkg/modules/apdex"
- "github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/types/apdextypes"
"github.com/SigNoz/signoz/pkg/types/authtypes"
)
@@ -31,7 +31,7 @@ func (handler *handler) Set(rw http.ResponseWriter, req *http.Request) {
return
}
- var apdexSettings types.ApdexSettings
+ var apdexSettings apdextypes.Settings
if err := json.NewDecoder(req.Body).Decode(&apdexSettings); err != nil {
render.Error(rw, err)
return
diff --git a/pkg/modules/apdex/implapdex/module.go b/pkg/modules/apdex/implapdex/module.go
index 9eaa86048c..3012e4ba36 100644
--- a/pkg/modules/apdex/implapdex/module.go
+++ b/pkg/modules/apdex/implapdex/module.go
@@ -6,7 +6,7 @@ import (
"github.com/SigNoz/signoz/pkg/errors"
"github.com/SigNoz/signoz/pkg/modules/apdex"
"github.com/SigNoz/signoz/pkg/sqlstore"
- "github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/types/apdextypes"
"github.com/SigNoz/signoz/pkg/valuer"
"github.com/uptrace/bun"
)
@@ -25,8 +25,8 @@ func NewModule(sqlstore sqlstore.SQLStore) apdex.Module {
}
}
-func (module *module) Get(ctx context.Context, orgID string, services []string) ([]*types.ApdexSettings, error) {
- var apdexSettings []*types.ApdexSettings
+func (module *module) Get(ctx context.Context, orgID string, services []string) ([]*apdextypes.Settings, error) {
+ var apdexSettings []*apdextypes.Settings
err := module.
sqlstore.
@@ -51,7 +51,7 @@ func (module *module) Get(ctx context.Context, orgID string, services []string)
}
if !found {
- apdexSettings = append(apdexSettings, &types.ApdexSettings{
+ apdexSettings = append(apdexSettings, &apdextypes.Settings{
ServiceName: service,
Threshold: defaultApdexThreshold,
})
@@ -61,7 +61,7 @@ func (module *module) Get(ctx context.Context, orgID string, services []string)
return apdexSettings, nil
}
-func (module *module) Set(ctx context.Context, orgID string, apdexSettings *types.ApdexSettings) error {
+func (module *module) Set(ctx context.Context, orgID string, apdexSettings *apdextypes.Settings) error {
apdexSettings.OrgID = orgID
apdexSettings.Identifiable.ID = valuer.GenerateUUID()
diff --git a/pkg/modules/organization/implorganization/getter.go b/pkg/modules/organization/implorganization/getter.go
new file mode 100644
index 0000000000..78c684ece3
--- /dev/null
+++ b/pkg/modules/organization/implorganization/getter.go
@@ -0,0 +1,36 @@
+package implorganization
+
+import (
+ "context"
+
+ "github.com/SigNoz/signoz/pkg/modules/organization"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/valuer"
+)
+
+type getter struct {
+ store types.OrganizationStore
+ sharder sharder.Sharder
+}
+
+func NewGetter(store types.OrganizationStore, sharder sharder.Sharder) organization.Getter {
+ return &getter{store: store, sharder: sharder}
+}
+
+func (module *getter) Get(ctx context.Context, id valuer.UUID) (*types.Organization, error) {
+ return module.store.Get(ctx, id)
+}
+
+func (module *getter) List(ctx context.Context) ([]*types.Organization, error) {
+ return module.store.GetAll(ctx)
+}
+
+func (module *getter) ListByOwnedKeyRange(ctx context.Context) ([]*types.Organization, error) {
+ start, end, err := module.sharder.GetMyOwnedKeyRange(ctx)
+ if err != nil {
+ return nil, err
+ }
+
+ return module.store.ListByKeyRange(ctx, start, end)
+}
diff --git a/pkg/modules/organization/implorganization/handler.go b/pkg/modules/organization/implorganization/handler.go
index 9c5ca484ed..ce15529932 100644
--- a/pkg/modules/organization/implorganization/handler.go
+++ b/pkg/modules/organization/implorganization/handler.go
@@ -15,11 +15,12 @@ import (
)
type handler struct {
- module organization.Module
+ orgGetter organization.Getter
+ orgSetter organization.Setter
}
-func NewHandler(module organization.Module) organization.Handler {
- return &handler{module: module}
+func NewHandler(orgGetter organization.Getter, orgSetter organization.Setter) organization.Handler {
+ return &handler{orgGetter: orgGetter, orgSetter: orgSetter}
}
func (handler *handler) Get(rw http.ResponseWriter, r *http.Request) {
@@ -38,7 +39,7 @@ func (handler *handler) Get(rw http.ResponseWriter, r *http.Request) {
return
}
- organization, err := handler.module.Get(ctx, orgID)
+ organization, err := handler.orgGetter.Get(ctx, orgID)
if err != nil {
render.Error(rw, err)
return
@@ -70,7 +71,7 @@ func (handler *handler) Update(rw http.ResponseWriter, r *http.Request) {
}
req.ID = orgID
- err = handler.module.Update(ctx, req)
+ err = handler.orgSetter.Update(ctx, req)
if err != nil {
render.Error(rw, err)
return
diff --git a/pkg/modules/organization/implorganization/module.go b/pkg/modules/organization/implorganization/module.go
deleted file mode 100644
index 27fe2f1e6f..0000000000
--- a/pkg/modules/organization/implorganization/module.go
+++ /dev/null
@@ -1,33 +0,0 @@
-package implorganization
-
-import (
- "context"
-
- "github.com/SigNoz/signoz/pkg/modules/organization"
- "github.com/SigNoz/signoz/pkg/types"
- "github.com/SigNoz/signoz/pkg/valuer"
-)
-
-type module struct {
- store types.OrganizationStore
-}
-
-func NewModule(organizationStore types.OrganizationStore) organization.Module {
- return &module{store: organizationStore}
-}
-
-func (module *module) Create(ctx context.Context, organization *types.Organization) error {
- return module.store.Create(ctx, organization)
-}
-
-func (module *module) Get(ctx context.Context, id valuer.UUID) (*types.Organization, error) {
- return module.store.Get(ctx, id)
-}
-
-func (module *module) GetAll(ctx context.Context) ([]*types.Organization, error) {
- return module.store.GetAll(ctx)
-}
-
-func (module *module) Update(ctx context.Context, updatedOrganization *types.Organization) error {
- return module.store.Update(ctx, updatedOrganization)
-}
diff --git a/pkg/modules/organization/implorganization/setter.go b/pkg/modules/organization/implorganization/setter.go
new file mode 100644
index 0000000000..693d4a3aab
--- /dev/null
+++ b/pkg/modules/organization/implorganization/setter.go
@@ -0,0 +1,40 @@
+package implorganization
+
+import (
+ "context"
+
+ "github.com/SigNoz/signoz/pkg/alertmanager"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
+ "github.com/SigNoz/signoz/pkg/modules/quickfilter"
+ "github.com/SigNoz/signoz/pkg/types"
+)
+
+type setter struct {
+ store types.OrganizationStore
+ alertmanager alertmanager.Alertmanager
+ quickfilter quickfilter.Module
+}
+
+func NewSetter(store types.OrganizationStore, alertmanager alertmanager.Alertmanager, quickfilter quickfilter.Module) organization.Setter {
+ return &setter{store: store, alertmanager: alertmanager, quickfilter: quickfilter}
+}
+
+func (module *setter) Create(ctx context.Context, organization *types.Organization) error {
+ if err := module.store.Create(ctx, organization); err != nil {
+ return err
+ }
+
+ if err := module.alertmanager.SetDefaultConfig(ctx, organization.ID.StringValue()); err != nil {
+ return err
+ }
+
+ if err := module.quickfilter.SetDefaultConfig(ctx, organization.ID); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (module *setter) Update(ctx context.Context, updatedOrganization *types.Organization) error {
+ return module.store.Update(ctx, updatedOrganization)
+}
diff --git a/pkg/modules/organization/implorganization/store.go b/pkg/modules/organization/implorganization/store.go
index ec33cd04bd..6acd247dc5 100644
--- a/pkg/modules/organization/implorganization/store.go
+++ b/pkg/modules/organization/implorganization/store.go
@@ -92,3 +92,20 @@ func (store *store) Delete(ctx context.Context, id valuer.UUID) error {
return nil
}
+
+func (store *store) ListByKeyRange(ctx context.Context, start, end uint32) ([]*types.Organization, error) {
+ organizations := make([]*types.Organization, 0)
+ err := store.
+ sqlstore.
+ BunDB().
+ NewSelect().
+ Model(&organizations).
+ Where("key >= ?", start).
+ Where("key <= ?", end).
+ Scan(ctx)
+ if err != nil {
+ return nil, err
+ }
+
+ return organizations, nil
+}
diff --git a/pkg/modules/organization/organization.go b/pkg/modules/organization/organization.go
index 00ba48f95d..a48ef682d6 100644
--- a/pkg/modules/organization/organization.go
+++ b/pkg/modules/organization/organization.go
@@ -8,17 +8,22 @@ import (
"github.com/SigNoz/signoz/pkg/valuer"
)
-type Module interface {
- // Create creates the given organization
- Create(context.Context, *types.Organization) error
-
+type Getter interface {
// Get gets the organization based on the given id
Get(context.Context, valuer.UUID) (*types.Organization, error)
- // GetAll gets all the organizations
- GetAll(context.Context) ([]*types.Organization, error)
+ // Lists all the organizations
+ List(context.Context) ([]*types.Organization, error)
- // Update updates the given organization based on id present
+ // ListByOwnedKeyRange gets all the organizations owned by the instance
+ ListByOwnedKeyRange(context.Context) ([]*types.Organization, error)
+}
+
+type Setter interface {
+ // Create creates the given organization
+ Create(context.Context, *types.Organization) error
+
+ // Update updates the given organization
Update(context.Context, *types.Organization) error
}
diff --git a/pkg/modules/tracefunnel/impltracefunnel/handler.go b/pkg/modules/tracefunnel/impltracefunnel/handler.go
new file mode 100644
index 0000000000..09f4dfe269
--- /dev/null
+++ b/pkg/modules/tracefunnel/impltracefunnel/handler.go
@@ -0,0 +1,235 @@
+package impltracefunnel
+
+import (
+ "encoding/json"
+ "net/http"
+
+ "github.com/SigNoz/signoz/pkg/errors"
+ "github.com/SigNoz/signoz/pkg/http/render"
+ "github.com/SigNoz/signoz/pkg/modules/tracefunnel"
+ "github.com/SigNoz/signoz/pkg/types/authtypes"
+ tf "github.com/SigNoz/signoz/pkg/types/tracefunneltypes"
+ "github.com/SigNoz/signoz/pkg/valuer"
+ "github.com/gorilla/mux"
+)
+
+type handler struct {
+ module tracefunnel.Module
+}
+
+func NewHandler(module tracefunnel.Module) tracefunnel.Handler {
+ return &handler{module: module}
+}
+
+func (handler *handler) New(rw http.ResponseWriter, r *http.Request) {
+ var req tf.PostableFunnel
+ if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ claims, err := authtypes.ClaimsFromContext(r.Context())
+ if err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ funnel, err := handler.module.Create(r.Context(), req.Timestamp, req.Name, valuer.MustNewUUID(claims.UserID), valuer.MustNewUUID(claims.OrgID))
+ if err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "failed to create funnel: %v", err))
+ return
+ }
+
+ response := tf.ConstructFunnelResponse(funnel, &claims)
+ render.Success(rw, http.StatusOK, response)
+}
+
+func (handler *handler) UpdateSteps(rw http.ResponseWriter, r *http.Request) {
+ var req tf.PostableFunnel
+ if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ claims, err := authtypes.ClaimsFromContext(r.Context())
+ if err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ updatedAt, err := tf.ValidateAndConvertTimestamp(req.Timestamp)
+ if err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ funnel, err := handler.module.Get(r.Context(), req.FunnelID, valuer.MustNewUUID(claims.OrgID))
+ if err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "funnel not found: %v", err))
+ return
+ }
+
+ steps, err := tf.ProcessFunnelSteps(req.Steps)
+ if err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ funnel.Steps = steps
+ funnel.UpdatedAt = updatedAt
+ funnel.UpdatedBy = claims.UserID
+
+ if req.Name != "" {
+ funnel.Name = req.Name
+ }
+ if req.Description != "" {
+ funnel.Description = req.Description
+ }
+
+ if err := handler.module.Update(r.Context(), funnel, valuer.MustNewUUID(claims.UserID)); err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "failed to update funnel in database: %v", err))
+ return
+ }
+
+ updatedFunnel, err := handler.module.Get(r.Context(), funnel.ID, valuer.MustNewUUID(claims.OrgID))
+ if err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "failed to get updated funnel: %v", err))
+ return
+ }
+
+ response := tf.ConstructFunnelResponse(updatedFunnel, &claims)
+ render.Success(rw, http.StatusOK, response)
+}
+
+func (handler *handler) UpdateFunnel(rw http.ResponseWriter, r *http.Request) {
+ var req tf.PostableFunnel
+ if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ claims, err := authtypes.ClaimsFromContext(r.Context())
+ if err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ updatedAt, err := tf.ValidateAndConvertTimestamp(req.Timestamp)
+ if err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ vars := mux.Vars(r)
+ funnelID := vars["funnel_id"]
+
+ funnel, err := handler.module.Get(r.Context(), valuer.MustNewUUID(funnelID), valuer.MustNewUUID(claims.OrgID))
+ if err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "funnel not found: %v", err))
+ return
+ }
+
+ funnel.UpdatedAt = updatedAt
+ funnel.UpdatedBy = claims.UserID
+
+ if req.Name != "" {
+ funnel.Name = req.Name
+ }
+ if req.Description != "" {
+ funnel.Description = req.Description
+ }
+
+ if err := handler.module.Update(r.Context(), funnel, valuer.MustNewUUID(claims.UserID)); err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "failed to update funnel in database: %v", err))
+ return
+ }
+
+ updatedFunnel, err := handler.module.Get(r.Context(), funnel.ID, valuer.MustNewUUID(claims.OrgID))
+ if err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "failed to get updated funnel: %v", err))
+ return
+ }
+
+ response := tf.ConstructFunnelResponse(updatedFunnel, &claims)
+ render.Success(rw, http.StatusOK, response)
+}
+
+func (handler *handler) List(rw http.ResponseWriter, r *http.Request) {
+ claims, err := authtypes.ClaimsFromContext(r.Context())
+ if err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ funnels, err := handler.module.List(r.Context(), valuer.MustNewUUID(claims.OrgID))
+ if err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "failed to list funnels: %v", err))
+ return
+ }
+
+ var response []tf.GettableFunnel
+ for _, f := range funnels {
+ response = append(response, tf.ConstructFunnelResponse(f, &claims))
+ }
+
+ render.Success(rw, http.StatusOK, response)
+}
+
+func (handler *handler) Get(rw http.ResponseWriter, r *http.Request) {
+ vars := mux.Vars(r)
+ funnelID := vars["funnel_id"]
+
+ claims, err := authtypes.ClaimsFromContext(r.Context())
+
+ if err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ funnel, err := handler.module.Get(r.Context(), valuer.MustNewUUID(funnelID), valuer.MustNewUUID(claims.OrgID))
+ if err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "funnel not found: %v", err))
+ return
+ }
+ response := tf.ConstructFunnelResponse(funnel, &claims)
+ render.Success(rw, http.StatusOK, response)
+}
+
+func (handler *handler) Delete(rw http.ResponseWriter, r *http.Request) {
+ vars := mux.Vars(r)
+ funnelID := vars["funnel_id"]
+
+ claims, err := authtypes.ClaimsFromContext(r.Context())
+
+ if err != nil {
+ render.Error(rw, err)
+ return
+ }
+
+ if err := handler.module.Delete(r.Context(), valuer.MustNewUUID(funnelID), valuer.MustNewUUID(claims.OrgID)); err != nil {
+ render.Error(rw, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "failed to delete funnel: %v", err))
+ return
+ }
+
+ render.Success(rw, http.StatusOK, nil)
+}
diff --git a/pkg/modules/tracefunnel/impltracefunnel/handler_test.go b/pkg/modules/tracefunnel/impltracefunnel/handler_test.go
new file mode 100644
index 0000000000..06df5d31f4
--- /dev/null
+++ b/pkg/modules/tracefunnel/impltracefunnel/handler_test.go
@@ -0,0 +1,173 @@
+package impltracefunnel
+
+import (
+ "context"
+ "encoding/json"
+ "net/http"
+ "net/http/httptest"
+ "testing"
+
+ "github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/types/authtypes"
+ traceFunnels "github.com/SigNoz/signoz/pkg/types/tracefunneltypes"
+ "github.com/SigNoz/signoz/pkg/valuer"
+ "github.com/gorilla/mux"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/mock"
+)
+
+type MockModule struct {
+ mock.Mock
+}
+
+func (m *MockModule) Create(ctx context.Context, timestamp int64, name string, userID valuer.UUID, orgID valuer.UUID) (*traceFunnels.StorableFunnel, error) {
+ args := m.Called(ctx, timestamp, name, userID, orgID)
+ return args.Get(0).(*traceFunnels.StorableFunnel), args.Error(1)
+}
+
+func (m *MockModule) Get(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) (*traceFunnels.StorableFunnel, error) {
+ args := m.Called(ctx, funnelID, orgID)
+ return args.Get(0).(*traceFunnels.StorableFunnel), args.Error(1)
+}
+
+func (m *MockModule) Update(ctx context.Context, funnel *traceFunnels.StorableFunnel, userID valuer.UUID) error {
+ args := m.Called(ctx, funnel, userID)
+ return args.Error(0)
+}
+
+func (m *MockModule) List(ctx context.Context, orgID valuer.UUID) ([]*traceFunnels.StorableFunnel, error) {
+ args := m.Called(ctx, orgID)
+ return args.Get(0).([]*traceFunnels.StorableFunnel), args.Error(1)
+}
+
+func (m *MockModule) Delete(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) error {
+ args := m.Called(ctx, funnelID, orgID)
+ return args.Error(0)
+}
+
+func (m *MockModule) Save(ctx context.Context, funnel *traceFunnels.StorableFunnel, userID valuer.UUID, orgID valuer.UUID) error {
+ args := m.Called(ctx, funnel, userID, orgID)
+ return args.Error(0)
+}
+
+func (m *MockModule) GetFunnelMetadata(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) (int64, int64, string, error) {
+ args := m.Called(ctx, funnelID, orgID)
+ return args.Get(0).(int64), args.Get(1).(int64), args.String(2), args.Error(3)
+}
+
+func TestHandler_List(t *testing.T) {
+ mockModule := new(MockModule)
+ handler := NewHandler(mockModule)
+
+ req := httptest.NewRequest(http.MethodGet, "/api/v1/trace-funnels/list", nil)
+
+ orgID := valuer.GenerateUUID()
+ claims := authtypes.Claims{
+ OrgID: orgID.String(),
+ }
+ req = req.WithContext(authtypes.NewContextWithClaims(req.Context(), claims))
+
+ rr := httptest.NewRecorder()
+
+ funnel1ID := valuer.GenerateUUID()
+ funnel2ID := valuer.GenerateUUID()
+ expectedFunnels := []*traceFunnels.StorableFunnel{
+ {
+ Identifiable: types.Identifiable{
+ ID: funnel1ID,
+ },
+ Name: "funnel-1",
+ OrgID: orgID,
+ },
+ {
+ Identifiable: types.Identifiable{
+ ID: funnel2ID,
+ },
+ Name: "funnel-2",
+ OrgID: orgID,
+ },
+ }
+
+ mockModule.On("List", req.Context(), orgID).Return(expectedFunnels, nil)
+
+ handler.List(rr, req)
+
+ assert.Equal(t, http.StatusOK, rr.Code)
+
+ var response struct {
+ Status string `json:"status"`
+ Data []traceFunnels.GettableFunnel `json:"data"`
+ }
+ err := json.Unmarshal(rr.Body.Bytes(), &response)
+ assert.NoError(t, err)
+ assert.Equal(t, "success", response.Status)
+ assert.Len(t, response.Data, 2)
+ assert.Equal(t, "funnel-1", response.Data[0].FunnelName)
+ assert.Equal(t, "funnel-2", response.Data[1].FunnelName)
+
+ mockModule.AssertExpectations(t)
+}
+
+func TestHandler_Get(t *testing.T) {
+ mockModule := new(MockModule)
+ handler := NewHandler(mockModule)
+
+ funnelID := valuer.GenerateUUID()
+ orgID := valuer.GenerateUUID()
+ req := httptest.NewRequest(http.MethodGet, "/api/v1/trace-funnels/"+funnelID.String(), nil)
+ req = mux.SetURLVars(req, map[string]string{"funnel_id": funnelID.String()})
+ req = req.WithContext(authtypes.NewContextWithClaims(req.Context(), authtypes.Claims{
+ OrgID: orgID.String(),
+ }))
+
+ rr := httptest.NewRecorder()
+
+ expectedFunnel := &traceFunnels.StorableFunnel{
+ Identifiable: types.Identifiable{
+ ID: funnelID,
+ },
+ Name: "test-funnel",
+ OrgID: orgID,
+ }
+
+ mockModule.On("Get", req.Context(), funnelID, orgID).Return(expectedFunnel, nil)
+
+ handler.Get(rr, req)
+
+ assert.Equal(t, http.StatusOK, rr.Code)
+
+ var response struct {
+ Status string `json:"status"`
+ Data traceFunnels.GettableFunnel `json:"data"`
+ }
+ err := json.Unmarshal(rr.Body.Bytes(), &response)
+ assert.NoError(t, err)
+ assert.Equal(t, "success", response.Status)
+ assert.Equal(t, "test-funnel", response.Data.FunnelName)
+ assert.Equal(t, expectedFunnel.OrgID.String(), response.Data.OrgID)
+
+ mockModule.AssertExpectations(t)
+}
+
+func TestHandler_Delete(t *testing.T) {
+ mockModule := new(MockModule)
+ handler := NewHandler(mockModule)
+
+ funnelID := valuer.GenerateUUID()
+ orgID := valuer.GenerateUUID()
+ req := httptest.NewRequest(http.MethodDelete, "/api/v1/trace-funnels/"+funnelID.String(), nil)
+ req = mux.SetURLVars(req, map[string]string{"funnel_id": funnelID.String()})
+ req = req.WithContext(authtypes.NewContextWithClaims(req.Context(), authtypes.Claims{
+ OrgID: orgID.String(),
+ }))
+
+ rr := httptest.NewRecorder()
+
+ mockModule.On("Delete", req.Context(), funnelID, orgID).Return(nil)
+
+ handler.Delete(rr, req)
+
+ assert.Equal(t, http.StatusOK, rr.Code)
+
+ mockModule.AssertExpectations(t)
+}
diff --git a/pkg/modules/tracefunnel/impltracefunnel/module.go b/pkg/modules/tracefunnel/impltracefunnel/module.go
new file mode 100644
index 0000000000..b53ffb42c6
--- /dev/null
+++ b/pkg/modules/tracefunnel/impltracefunnel/module.go
@@ -0,0 +1,96 @@
+package impltracefunnel
+
+import (
+ "context"
+ "fmt"
+ "time"
+
+ "github.com/SigNoz/signoz/pkg/modules/tracefunnel"
+ "github.com/SigNoz/signoz/pkg/types"
+ traceFunnels "github.com/SigNoz/signoz/pkg/types/tracefunneltypes"
+ "github.com/SigNoz/signoz/pkg/valuer"
+)
+
+type module struct {
+ store traceFunnels.FunnelStore
+}
+
+func NewModule(store traceFunnels.FunnelStore) tracefunnel.Module {
+ return &module{
+ store: store,
+ }
+}
+
+func (module *module) Create(ctx context.Context, timestamp int64, name string, userID valuer.UUID, orgID valuer.UUID) (*traceFunnels.StorableFunnel, error) {
+ funnel := &traceFunnels.StorableFunnel{
+ Name: name,
+ OrgID: orgID,
+ }
+ funnel.CreatedAt = time.Unix(0, timestamp*1000000) // Convert to nanoseconds
+ funnel.CreatedBy = userID.String()
+
+ // Set up the user relationship
+ funnel.CreatedByUser = &types.User{
+ Identifiable: types.Identifiable{
+ ID: userID,
+ },
+ }
+
+ if funnel.ID.IsZero() {
+ funnel.ID = valuer.GenerateUUID()
+ }
+
+ if funnel.CreatedAt.IsZero() {
+ funnel.CreatedAt = time.Now()
+ }
+ if funnel.UpdatedAt.IsZero() {
+ funnel.UpdatedAt = time.Now()
+ }
+
+ // Set created_by if CreatedByUser is present
+ if funnel.CreatedByUser != nil {
+ funnel.CreatedBy = funnel.CreatedByUser.Identifiable.ID.String()
+ }
+
+ if err := module.store.Create(ctx, funnel); err != nil {
+ return nil, fmt.Errorf("failed to create funnel: %v", err)
+ }
+
+ return funnel, nil
+}
+
+// Get gets a funnel by ID
+func (module *module) Get(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) (*traceFunnels.StorableFunnel, error) {
+ return module.store.Get(ctx, funnelID, orgID)
+}
+
+// Update updates a funnel
+func (module *module) Update(ctx context.Context, funnel *traceFunnels.StorableFunnel, userID valuer.UUID) error {
+ funnel.UpdatedBy = userID.String()
+ return module.store.Update(ctx, funnel)
+}
+
+// List lists all funnels for an organization
+func (module *module) List(ctx context.Context, orgID valuer.UUID) ([]*traceFunnels.StorableFunnel, error) {
+ funnels, err := module.store.List(ctx, orgID)
+ if err != nil {
+ return nil, fmt.Errorf("failed to list funnels: %v", err)
+ }
+
+ return funnels, nil
+}
+
+// Delete deletes a funnel
+func (module *module) Delete(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) error {
+ return module.store.Delete(ctx, funnelID, orgID)
+}
+
+// GetFunnelMetadata gets metadata for a funnel
+func (module *module) GetFunnelMetadata(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) (int64, int64, string, error) {
+ funnel, err := module.store.Get(ctx, funnelID, orgID)
+ if err != nil {
+ return 0, 0, "", err
+ }
+
+ return funnel.CreatedAt.UnixNano() / 1000000, funnel.UpdatedAt.UnixNano() / 1000000, funnel.Description, nil
+}
diff --git a/pkg/modules/tracefunnel/impltracefunnel/store.go b/pkg/modules/tracefunnel/impltracefunnel/store.go
new file mode 100644
index 0000000000..f0c2b119b5
--- /dev/null
+++ b/pkg/modules/tracefunnel/impltracefunnel/store.go
@@ -0,0 +1,114 @@
+package impltracefunnel
+
+import (
+ "context"
+ "time"
+
+ "github.com/SigNoz/signoz/pkg/errors"
+ "github.com/SigNoz/signoz/pkg/sqlstore"
+ traceFunnels "github.com/SigNoz/signoz/pkg/types/tracefunneltypes"
+ "github.com/SigNoz/signoz/pkg/valuer"
+)
+
+type store struct {
+ sqlstore sqlstore.SQLStore
+}
+
+func NewStore(sqlstore sqlstore.SQLStore) traceFunnels.FunnelStore {
+ return &store{sqlstore: sqlstore}
+}
+
+func (store *store) Create(ctx context.Context, funnel *traceFunnels.StorableFunnel) error {
+ // Check if a funnel with the same name already exists in the organization
+ exists, err := store.
+ sqlstore.
+ BunDB().
+ NewSelect().
+ Model(new(traceFunnels.StorableFunnel)).
+ Where("name = ? AND org_id = ?", funnel.Name, funnel.OrgID.String()).
+ Exists(ctx)
+ if err != nil {
+ return errors.Wrapf(err, errors.TypeInternal, errors.CodeInternal, "failed to check for existing funnelr")
+ }
+ if exists {
+ return store.sqlstore.WrapAlreadyExistsErrf(nil, traceFunnels.ErrFunnelAlreadyExists, "a funnel with name '%s' already exists in this organization", funnel.Name)
+ }
+
+ _, err = store.
+ sqlstore.
+ BunDB().
+ NewInsert().
+ Model(funnel).
+ Exec(ctx)
+ if err != nil {
+ return errors.Wrapf(err, errors.TypeInternal, errors.CodeInternal, "failed to create funnels")
+ }
+
+ return nil
+}
+
+// Get retrieves a funnel by ID
+func (store *store) Get(ctx context.Context, uuid valuer.UUID, orgID valuer.UUID) (*traceFunnels.StorableFunnel, error) {
+ funnel := &traceFunnels.StorableFunnel{}
+ err := store.
+ sqlstore.
+ BunDB().
+ NewSelect().
+ Model(funnel).
+ Relation("CreatedByUser").
+ Where("?TableAlias.id = ? AND ?TableAlias.org_id = ?", uuid.String(), orgID.String()).
+ Scan(ctx)
+ if err != nil {
+ return nil, errors.Wrapf(err, errors.TypeInternal, errors.CodeInternal, "failed to get funnels")
+ }
+ return funnel, nil
+}
+
+// Update updates an existing funnel
+func (store *store) Update(ctx context.Context, funnel *traceFunnels.StorableFunnel) error {
+ funnel.UpdatedAt = time.Now()
+
+ _, err := store.
+ sqlstore.
+ BunDB().
+ NewUpdate().
+ Model(funnel).
+ WherePK().
+ Exec(ctx)
+ if err != nil {
+ return store.sqlstore.WrapAlreadyExistsErrf(err, traceFunnels.ErrFunnelAlreadyExists, "a funnel with name '%s' already exists in this organization", funnel.Name)
+ }
+ return nil
+}
+
+// List retrieves all funnels for a given organization
+func (store *store) List(ctx context.Context, orgID valuer.UUID) ([]*traceFunnels.StorableFunnel, error) {
+ var funnels []*traceFunnels.StorableFunnel
+ err := store.
+ sqlstore.
+ BunDB().
+ NewSelect().
+ Model(&funnels).
+ Relation("CreatedByUser").
+ Where("?TableAlias.org_id = ?", orgID.String()).
+ Scan(ctx)
+ if err != nil {
+ return nil, errors.Wrapf(err, errors.TypeInternal, errors.CodeInternal, "failed to list funnels")
+ }
+ return funnels, nil
+}
+
+// Delete removes a funnel by ID
+func (store *store) Delete(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) error {
+ _, err := store.
+ sqlstore.
+ BunDB().
+ NewDelete().
+ Model(new(traceFunnels.StorableFunnel)).
+ Where("id = ? AND org_id = ?", funnelID.String(), orgID.String()).
+ Exec(ctx)
+ if err != nil {
+ return errors.Wrapf(err, errors.TypeInternal, errors.CodeInternal, "failed to delete funnel")
+ }
+ return nil
+}
diff --git a/pkg/modules/tracefunnel/tracefunnel.go b/pkg/modules/tracefunnel/tracefunnel.go
new file mode 100644
index 0000000000..13401ee5a4
--- /dev/null
+++ b/pkg/modules/tracefunnel/tracefunnel.go
@@ -0,0 +1,38 @@
+package tracefunnel
+
+import (
+ "context"
+ "github.com/SigNoz/signoz/pkg/valuer"
+ "net/http"
+
+ traceFunnels "github.com/SigNoz/signoz/pkg/types/tracefunneltypes"
+)
+
+// Module defines the interface for trace funnel operations
+type Module interface {
+ Create(ctx context.Context, timestamp int64, name string, userID valuer.UUID, orgID valuer.UUID) (*traceFunnels.StorableFunnel, error)
+
+ Get(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) (*traceFunnels.StorableFunnel, error)
+
+ Update(ctx context.Context, funnel *traceFunnels.StorableFunnel, userID valuer.UUID) error
+
+ List(ctx context.Context, orgID valuer.UUID) ([]*traceFunnels.StorableFunnel, error)
+
+ Delete(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) error
+
+ GetFunnelMetadata(ctx context.Context, funnelID valuer.UUID, orgID valuer.UUID) (int64, int64, string, error)
+}
+
+type Handler interface {
+ New(http.ResponseWriter, *http.Request)
+
+ UpdateSteps(http.ResponseWriter, *http.Request)
+
+ UpdateFunnel(http.ResponseWriter, *http.Request)
+
+ List(http.ResponseWriter, *http.Request)
+
+ Get(http.ResponseWriter, *http.Request)
+
+ Delete(http.ResponseWriter, *http.Request)
+}
diff --git a/pkg/modules/tracefunnel/tracefunneltest/module_test.go b/pkg/modules/tracefunnel/tracefunneltest/module_test.go
new file mode 100644
index 0000000000..0379027669
--- /dev/null
+++ b/pkg/modules/tracefunnel/tracefunneltest/module_test.go
@@ -0,0 +1,183 @@
+package tracefunneltest
+
+import (
+ "context"
+ "testing"
+ "time"
+
+ "github.com/SigNoz/signoz/pkg/modules/tracefunnel/impltracefunnel"
+ "github.com/SigNoz/signoz/pkg/types"
+ traceFunnels "github.com/SigNoz/signoz/pkg/types/tracefunneltypes"
+ "github.com/SigNoz/signoz/pkg/valuer"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/mock"
+)
+
+type MockStore struct {
+ mock.Mock
+}
+
+func (m *MockStore) Create(ctx context.Context, funnel *traceFunnels.StorableFunnel) error {
+ args := m.Called(ctx, funnel)
+ return args.Error(0)
+}
+
+func (m *MockStore) Get(ctx context.Context, uuid valuer.UUID, orgID valuer.UUID) (*traceFunnels.StorableFunnel, error) {
+ args := m.Called(ctx, uuid, orgID)
+ return args.Get(0).(*traceFunnels.StorableFunnel), args.Error(1)
+}
+
+func (m *MockStore) List(ctx context.Context, orgID valuer.UUID) ([]*traceFunnels.StorableFunnel, error) {
+ args := m.Called(ctx, orgID)
+ return args.Get(0).([]*traceFunnels.StorableFunnel), args.Error(1)
+}
+
+func (m *MockStore) Update(ctx context.Context, funnel *traceFunnels.StorableFunnel) error {
+ args := m.Called(ctx, funnel)
+ return args.Error(0)
+}
+
+func (m *MockStore) Delete(ctx context.Context, uuid valuer.UUID, orgID valuer.UUID) error {
+ args := m.Called(ctx, uuid, orgID)
+ return args.Error(0)
+}
+
+func TestModule_Create(t *testing.T) {
+ mockStore := new(MockStore)
+ module := impltracefunnel.NewModule(mockStore)
+
+ ctx := context.Background()
+ timestamp := time.Now().UnixMilli()
+ name := "test-funnel"
+ userID := valuer.GenerateUUID()
+ orgID := valuer.GenerateUUID()
+
+ mockStore.On("Create", ctx, mock.MatchedBy(func(f *traceFunnels.StorableFunnel) bool {
+ return f.Name == name &&
+ f.CreatedBy == userID.String() &&
+ f.OrgID == orgID &&
+ f.CreatedByUser != nil &&
+ f.CreatedByUser.ID == userID &&
+ f.CreatedAt.UnixNano()/1000000 == timestamp
+ })).Return(nil)
+
+ funnel, err := module.Create(ctx, timestamp, name, userID, orgID)
+ assert.NoError(t, err)
+ assert.NotNil(t, funnel)
+ assert.Equal(t, name, funnel.Name)
+ assert.Equal(t, userID.String(), funnel.CreatedBy)
+ assert.Equal(t, orgID, funnel.OrgID)
+ assert.NotNil(t, funnel.CreatedByUser)
+ assert.Equal(t, userID, funnel.CreatedByUser.ID)
+
+ mockStore.AssertExpectations(t)
+}
+
+func TestModule_Get(t *testing.T) {
+ mockStore := new(MockStore)
+ module := impltracefunnel.NewModule(mockStore)
+
+ ctx := context.Background()
+ funnelID := valuer.GenerateUUID()
+ orgID := valuer.GenerateUUID()
+ expectedFunnel := &traceFunnels.StorableFunnel{
+ Name: "test-funnel",
+ }
+
+ mockStore.On("Get", ctx, funnelID, orgID).Return(expectedFunnel, nil)
+
+ funnel, err := module.Get(ctx, funnelID, orgID)
+ assert.NoError(t, err)
+ assert.Equal(t, expectedFunnel, funnel)
+
+ mockStore.AssertExpectations(t)
+}
+
+func TestModule_Update(t *testing.T) {
+ mockStore := new(MockStore)
+ module := impltracefunnel.NewModule(mockStore)
+
+ ctx := context.Background()
+ userID := valuer.GenerateUUID()
+ funnel := &traceFunnels.StorableFunnel{
+ Name: "test-funnel",
+ }
+
+ mockStore.On("Update", ctx, funnel).Return(nil)
+
+ err := module.Update(ctx, funnel, userID)
+ assert.NoError(t, err)
+ assert.Equal(t, userID.String(), funnel.UpdatedBy)
+
+ mockStore.AssertExpectations(t)
+}
+
+func TestModule_List(t *testing.T) {
+ mockStore := new(MockStore)
+ module := impltracefunnel.NewModule(mockStore)
+
+ ctx := context.Background()
+ orgID := valuer.GenerateUUID()
+ expectedFunnels := []*traceFunnels.StorableFunnel{
+ {
+ Name: "funnel-1",
+ OrgID: orgID,
+ },
+ {
+ Name: "funnel-2",
+ OrgID: orgID,
+ },
+ }
+
+ mockStore.On("List", ctx, orgID).Return(expectedFunnels, nil)
+
+ funnels, err := module.List(ctx, orgID)
+ assert.NoError(t, err)
+ assert.Len(t, funnels, 2)
+ assert.Equal(t, expectedFunnels, funnels)
+
+ mockStore.AssertExpectations(t)
+}
+
+func TestModule_Delete(t *testing.T) {
+ mockStore := new(MockStore)
+ module := impltracefunnel.NewModule(mockStore)
+
+ ctx := context.Background()
+ funnelID := valuer.GenerateUUID()
+ orgID := valuer.GenerateUUID()
+
+ mockStore.On("Delete", ctx, funnelID, orgID).Return(nil)
+
+ err := module.Delete(ctx, funnelID, orgID)
+ assert.NoError(t, err)
+
+ mockStore.AssertExpectations(t)
+}
+
+func TestModule_GetFunnelMetadata(t *testing.T) {
+ mockStore := new(MockStore)
+ module := impltracefunnel.NewModule(mockStore)
+
+ ctx := context.Background()
+ funnelID := valuer.GenerateUUID()
+ orgID := valuer.GenerateUUID()
+ now := time.Now()
+ expectedFunnel := &traceFunnels.StorableFunnel{
+ Description: "test description",
+ TimeAuditable: types.TimeAuditable{
+ CreatedAt: now,
+ UpdatedAt: now,
+ },
+ }
+
+ mockStore.On("Get", ctx, funnelID, orgID).Return(expectedFunnel, nil)
+
+ createdAt, updatedAt, description, err := module.GetFunnelMetadata(ctx, funnelID, orgID)
+ assert.NoError(t, err)
+ assert.Equal(t, now.UnixNano()/1000000, createdAt)
+ assert.Equal(t, now.UnixNano()/1000000, updatedAt)
+ assert.Equal(t, "test description", description)
+
+ mockStore.AssertExpectations(t)
+}
diff --git a/pkg/modules/user/impluser/module.go b/pkg/modules/user/impluser/module.go
index ed7a58c9b7..45eaa4ba66 100644
--- a/pkg/modules/user/impluser/module.go
+++ b/pkg/modules/user/impluser/module.go
@@ -11,8 +11,10 @@ import (
"github.com/SigNoz/signoz/pkg/emailing"
"github.com/SigNoz/signoz/pkg/errors"
"github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/modules/user"
"github.com/SigNoz/signoz/pkg/query-service/constants"
+ "github.com/SigNoz/signoz/pkg/query-service/model"
"github.com/SigNoz/signoz/pkg/query-service/telemetry"
"github.com/SigNoz/signoz/pkg/types"
"github.com/SigNoz/signoz/pkg/types/authtypes"
@@ -22,20 +24,22 @@ import (
)
type Module struct {
- store types.UserStore
- jwt *authtypes.JWT
- emailing emailing.Emailing
- settings factory.ScopedProviderSettings
+ store types.UserStore
+ jwt *authtypes.JWT
+ emailing emailing.Emailing
+ settings factory.ScopedProviderSettings
+ orgSetter organization.Setter
}
// This module is a WIP, don't take inspiration from this.
-func NewModule(store types.UserStore, jwt *authtypes.JWT, emailing emailing.Emailing, providerSettings factory.ProviderSettings) user.Module {
+func NewModule(store types.UserStore, jwt *authtypes.JWT, emailing emailing.Emailing, providerSettings factory.ProviderSettings, orgSetter organization.Setter) user.Module {
settings := factory.NewScopedProviderSettings(providerSettings, "github.com/SigNoz/signoz/pkg/modules/user/impluser")
return &Module{
- store: store,
- jwt: jwt,
- emailing: emailing,
- settings: settings,
+ store: store,
+ jwt: jwt,
+ emailing: emailing,
+ settings: settings,
+ orgSetter: orgSetter,
}
}
@@ -538,3 +542,36 @@ func (m *Module) ListDomains(ctx context.Context, orgID valuer.UUID) ([]*types.G
func (m *Module) UpdateDomain(ctx context.Context, domain *types.GettableOrgDomain) error {
return m.store.UpdateDomain(ctx, domain)
}
+
+func (m *Module) Register(ctx context.Context, req *types.PostableRegisterOrgAndAdmin) (*types.User, error) {
+ if req.Email == "" {
+ return nil, errors.NewInvalidInputf(errors.CodeInvalidInput, "email is required")
+ }
+
+ if req.Password == "" {
+ return nil, errors.New(errors.TypeInvalidInput, errors.CodeInvalidInput, "password is required")
+ }
+
+ organization := types.NewOrganization(req.OrgDisplayName)
+ err := m.orgSetter.Create(ctx, organization)
+ if err != nil {
+ return nil, model.InternalError(err)
+ }
+
+ user, err := types.NewUser(req.Name, req.Email, types.RoleAdmin.String(), organization.ID.StringValue())
+ if err != nil {
+ return nil, model.InternalError(err)
+ }
+
+ password, err := types.NewFactorPassword(req.Password)
+ if err != nil {
+ return nil, model.InternalError(err)
+ }
+
+ user, err = m.CreateUserWithPassword(ctx, user, password)
+ if err != nil {
+ return nil, model.InternalError(err)
+ }
+
+ return user, nil
+}
diff --git a/pkg/modules/user/user.go b/pkg/modules/user/user.go
index f2f4153ddc..cb991ab95b 100644
--- a/pkg/modules/user/user.go
+++ b/pkg/modules/user/user.go
@@ -62,6 +62,9 @@ type Module interface {
ListAPIKeys(ctx context.Context, orgID valuer.UUID) ([]*types.StorableAPIKeyUser, error)
RevokeAPIKey(ctx context.Context, id, removedByUserID valuer.UUID) error
GetAPIKey(ctx context.Context, orgID valuer.UUID, id valuer.UUID) (*types.StorableAPIKeyUser, error)
+
+ // Register
+ Register(ctx context.Context, req *types.PostableRegisterOrgAndAdmin) (*types.User, error)
}
type Handler interface {
diff --git a/pkg/query-service/app/clickhouseReader/reader.go b/pkg/query-service/app/clickhouseReader/reader.go
index 799bf74fb6..c4dd8dbde1 100644
--- a/pkg/query-service/app/clickhouseReader/reader.go
+++ b/pkg/query-service/app/clickhouseReader/reader.go
@@ -6267,9 +6267,6 @@ func (r *ClickHouseReader) GetUpdatedMetricsMetadata(ctx context.Context, orgID
if err == nil {
cachedMetadata[metricName] = metadata
} else {
- if err != nil {
- zap.L().Error("Error retrieving metrics metadata from cache", zap.String("metric_name", metricName), zap.Error(err))
- }
missingMetrics = append(missingMetrics, metricName)
}
}
diff --git a/pkg/query-service/app/cloudintegrations/controller_test.go b/pkg/query-service/app/cloudintegrations/controller_test.go
index ff86b868db..dec3849b1c 100644
--- a/pkg/query-service/app/cloudintegrations/controller_test.go
+++ b/pkg/query-service/app/cloudintegrations/controller_test.go
@@ -3,17 +3,23 @@ package cloudintegrations
import (
"context"
"testing"
+ "time"
- "github.com/SigNoz/signoz/pkg/emailing"
- "github.com/SigNoz/signoz/pkg/emailing/noopemailing"
+ "github.com/SigNoz/signoz/pkg/alertmanager"
+ "github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerserver"
+ "github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
+ "github.com/SigNoz/signoz/pkg/emailing/emailingtest"
"github.com/SigNoz/signoz/pkg/instrumentation/instrumentationtest"
"github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/modules/organization/implorganization"
"github.com/SigNoz/signoz/pkg/modules/user"
- "github.com/SigNoz/signoz/pkg/modules/user/impluser"
"github.com/SigNoz/signoz/pkg/query-service/model"
"github.com/SigNoz/signoz/pkg/query-service/utils"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/sharder/noopsharder"
+ "github.com/SigNoz/signoz/pkg/signoz"
"github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/types/authtypes"
"github.com/google/uuid"
"github.com/stretchr/testify/require"
)
@@ -24,11 +30,16 @@ func TestRegenerateConnectionUrlWithUpdatedConfig(t *testing.T) {
controller, err := NewController(sqlStore)
require.NoError(err)
- organizationModule := implorganization.NewModule(implorganization.NewStore(sqlStore))
providerSettings := instrumentationtest.New().ToProviderSettings()
- emailing, _ := noopemailing.New(context.Background(), providerSettings, emailing.Config{})
- userModule := impluser.NewModule(impluser.NewStore(sqlStore, providerSettings), nil, emailing, providerSettings)
- user, apiErr := createTestUser(organizationModule, userModule)
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(sqlStore), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{Provider: "signoz", Signoz: alertmanager.Signoz{PollInterval: 10 * time.Second, Config: alertmanagerserver.NewConfig()}}, sqlStore, orgGetter)
+ require.NoError(err)
+ jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
+ emailing := emailingtest.New()
+ modules := signoz.NewModules(sqlStore, jwt, emailing, providerSettings, orgGetter, alertmanager)
+ user, apiErr := createTestUser(modules.OrgSetter, modules.User)
require.Nil(apiErr)
// should be able to generate connection url for
@@ -74,11 +85,17 @@ func TestAgentCheckIns(t *testing.T) {
sqlStore := utils.NewQueryServiceDBForTests(t)
controller, err := NewController(sqlStore)
require.NoError(err)
- organizationModule := implorganization.NewModule(implorganization.NewStore(sqlStore))
+
providerSettings := instrumentationtest.New().ToProviderSettings()
- emailing, _ := noopemailing.New(context.Background(), providerSettings, emailing.Config{})
- userModule := impluser.NewModule(impluser.NewStore(sqlStore, providerSettings), nil, emailing, providerSettings)
- user, apiErr := createTestUser(organizationModule, userModule)
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(sqlStore), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{Provider: "signoz", Signoz: alertmanager.Signoz{PollInterval: 10 * time.Second, Config: alertmanagerserver.NewConfig()}}, sqlStore, orgGetter)
+ require.NoError(err)
+ jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
+ emailing := emailingtest.New()
+ modules := signoz.NewModules(sqlStore, jwt, emailing, providerSettings, orgGetter, alertmanager)
+ user, apiErr := createTestUser(modules.OrgSetter, modules.User)
require.Nil(apiErr)
// An agent should be able to check in from a cloud account even
@@ -164,11 +181,16 @@ func TestCantDisconnectNonExistentAccount(t *testing.T) {
controller, err := NewController(sqlStore)
require.NoError(err)
- organizationModule := implorganization.NewModule(implorganization.NewStore(sqlStore))
providerSettings := instrumentationtest.New().ToProviderSettings()
- emailing, _ := noopemailing.New(context.Background(), providerSettings, emailing.Config{})
- userModule := impluser.NewModule(impluser.NewStore(sqlStore, providerSettings), nil, emailing, providerSettings)
- user, apiErr := createTestUser(organizationModule, userModule)
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(sqlStore), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{Provider: "signoz", Signoz: alertmanager.Signoz{PollInterval: 10 * time.Second, Config: alertmanagerserver.NewConfig()}}, sqlStore, orgGetter)
+ require.NoError(err)
+ jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
+ emailing := emailingtest.New()
+ modules := signoz.NewModules(sqlStore, jwt, emailing, providerSettings, orgGetter, alertmanager)
+ user, apiErr := createTestUser(modules.OrgSetter, modules.User)
require.Nil(apiErr)
// Attempting to disconnect a non-existent account should return error
@@ -186,11 +208,16 @@ func TestConfigureService(t *testing.T) {
controller, err := NewController(sqlStore)
require.NoError(err)
- organizationModule := implorganization.NewModule(implorganization.NewStore(sqlStore))
providerSettings := instrumentationtest.New().ToProviderSettings()
- emailing, _ := noopemailing.New(context.Background(), providerSettings, emailing.Config{})
- userModule := impluser.NewModule(impluser.NewStore(sqlStore, providerSettings), nil, emailing, providerSettings)
- user, apiErr := createTestUser(organizationModule, userModule)
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(sqlStore), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{Provider: "signoz", Signoz: alertmanager.Signoz{PollInterval: 10 * time.Second, Config: alertmanagerserver.NewConfig()}}, sqlStore, orgGetter)
+ require.NoError(err)
+ jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
+ emailing := emailingtest.New()
+ modules := signoz.NewModules(sqlStore, jwt, emailing, providerSettings, orgGetter, alertmanager)
+ user, apiErr := createTestUser(modules.OrgSetter, modules.User)
require.Nil(apiErr)
// create a connected account
@@ -305,7 +332,7 @@ func makeTestConnectedAccount(t *testing.T, orgId string, controller *Controller
return acc
}
-func createTestUser(organizationModule organization.Module, userModule user.Module) (*types.User, *model.ApiError) {
+func createTestUser(organizationModule organization.Setter, userModule user.Module) (*types.User, *model.ApiError) {
// Create a test user for auth
ctx := context.Background()
organization := types.NewOrganization("test")
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/alb/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/alb/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..e56d5e304a
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/alb/assets/dashboards/overview_dot.json
@@ -0,0 +1,1887 @@
+{
+ "description": "Overview of Application Load Balancers",
+ "image": "data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDg1IDg1IiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48dXNlIHhsaW5rOmhyZWY9IiNBIiB4PSIyLjUiIHk9IjIuNSIvPjxzeW1ib2wgaWQ9IkEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBzdHJva2U9Im5vbmUiPjxwYXRoIGQ9Ik0wIDQxLjU3OUMwIDIwLjI5MyAxNy44NCAzLjE1NyA0MCAzLjE1N3M0MCAxNy4xMzYgNDAgMzguNDIyUzYyLjE2IDgwIDQwIDgwIDAgNjIuODY0IDAgNDEuNTc5eiIgZmlsbD0iIzlkNTAyNSIvPjxwYXRoIGQ9Ik0wIDM4LjQyMkMwIDE3LjEzNiAxNy44NCAwIDQwIDBzNDAgMTcuMTM2IDQwIDM4LjQyMi0xNy44NCAzOC40MjItNDAgMzguNDIyUzAgNTkuNzA3IDAgMzguNDIyeiIgZmlsbD0iI2Y1ODUzNiIvPjxwYXRoIGQ9Ik01MS42NzIgNy4zODd2MTMuOTUySDI4LjMyN1Y3LjM4N3ptMTguMDYxIDQwLjM3OHYxMS4zNjRoLTExLjgzVjQ3Ljc2NXptLTE0Ljk1OCAwdjExLjM2NGgtMTEuODNWNDcuNzY1em0tMTguMjA2IDB2MTEuMzY0aC0xMS44M1Y0Ny43NjV6bS0xNC45NTkgMHYxMS4zNjRIOS43OFY0Ny43NjV6Ii8+PHBhdGggZD0iTTE0LjYzIDM3LjkyOWgyLjEzdjExLjE0OWgtMi4xM3oiLz48cGF0aCBkPSJNMTQuNjMgMzcuOTI5aDE3LjA4OHYyLjA0NUgxNC42M3oiLz48cGF0aCBkPSJNMjkuNTg5IDM3LjkyOWgyLjEzdjExLjE0OUgyOS41OXptMTguMjA2IDBoMi4xM3YxMS4xNDloLTIuMTN6Ii8+PHBhdGggZD0iTTQ3Ljc5NSAzNy45MjloMTcuMDg4djIuMDQ1SDQ3Ljc5NXoiLz48cGF0aCBkPSJNNjIuNzU0IDM3LjkyOWgyLjEzdjExLjE0OWgtMi4xMjl6bS00MC42MzEtNy45NTRoMi4xM3Y4Ljk3N2gtMi4xM3pNMzguOTM1IDE5LjI4aDIuMTN2MTAuODU5aC0yLjEyOXoiLz48cGF0aCBkPSJNMjIuMTIzIDI5LjExNmgzNS4zMnYyLjA0NWgtMzUuMzJ6Ii8+PHBhdGggZD0iTTU1LjMxNCAyOS45NzVoMi4xM3Y4Ljk3N2gtMi4xMjl6Ii8+PC9nPjwvc3ltYm9sPjwvc3ZnPg==",
+ "layout": [
+ {
+ "h": 5,
+ "i": "e13232f0-6308-4466-94c0-629cae762ff0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "9b99d70a-f12a-4df7-9a68-660a0ab55e42",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "5a9ec75f-3bcd-4829-94e6-452caa2cc0d2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "e16fb999-491b-4cfa-b9aa-d558f2132b6b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "2be35406-693a-435b-a844-2df239be0b60",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "480ecee2-1271-4dfd-a7bb-9f9845957c6e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "2243e542-0bbc-4e2a-a4dd-2e121abc9b95",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "3bb56361-9a67-47ce-b186-ccee02e15f51",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "36cbc321-6c02-4d13-895e-955d71d376b4",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 20
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "Application Load Balancer Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "Account": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account",
+ "id": "d5ef5880-68b1-4097-b4e5-9ce74200831f",
+ "key": "d5ef5880-68b1-4097-b4e5-9ce74200831f",
+ "modificationUUID": "9974ddda-3bc1-401d-b04a-364ea9a23866",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'cloud.account.id') as `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_ApplicationELB_ConsumedLCUs_max'\nGROUP BY `cloud.account.id`",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "Region": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Region",
+ "id": "bad33abd-ab38-493b-b23e-131659b6d03c",
+ "key": "bad33abd-ab38-493b-b23e-131659b6d03c",
+ "modificationUUID": "1aa1ef37-260c-4ca9-8aa9-f2ffb289c9e3",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 1,
+ "queryValue": "SELECT JSONExtractString(labels, 'cloud.region') as `cloud.region`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_ApplicationELB_ConsumedLCUs_max'\n and JSONExtractString(labels, 'cloud.account.id') IN {{.Account}}\nGROUP BY `cloud.region`\n",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The time elapsed, after the request leaves the load balancer until the target starts to send the response headers.\n\nSee TargetResponseTime at https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html",
+ "fillSpans": false,
+ "id": "9b99d70a-f12a-4df7-9a68-660a0ab55e42",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApplicationELB_TargetResponseTime_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApplicationELB_TargetResponseTime_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "b282d9f1",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "71837c70",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "5bfcc581",
+ "key": {
+ "dataType": "string",
+ "id": "TargetGroup--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TargetGroup",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "a9e33e08",
+ "key": {
+ "dataType": "string",
+ "id": "AvailabilityZone--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "AvailabilityZone",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "LoadBalancer--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "LoadBalancer",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{LoadBalancer}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "601aca8a-36fb-4e6a-b234-39294b9b305b",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Target Response Time",
+ "yAxisUnit": "s"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of requests processed over IPv4 and IPv6. This metric is only incremented for requests where the load balancer node was able to choose a target. Requests that are rejected before a target is chosen are not reflected in this metric.\n\nSee RequestCount at https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html",
+ "fillSpans": false,
+ "id": "e13232f0-6308-4466-94c0-629cae762ff0",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApplicationELB_RequestCount_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApplicationELB_RequestCount_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "448b551a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "a8821216",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "f5a62c5a",
+ "key": {
+ "dataType": "string",
+ "id": "AvailabilityZone--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "AvailabilityZone",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "25e8abc8",
+ "key": {
+ "dataType": "string",
+ "id": "TargetGroup--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TargetGroup",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "LoadBalancer--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "LoadBalancer",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{LoadBalancer}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "7d92a02f-3202-4059-8b88-2d24112a35e6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Requests",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of HTTP 5XX response codes generated by the targets. This does not include any response codes generated by the load balancer.\n\nSee HTTPCode_Target_5XX_Count at https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html",
+ "fillSpans": false,
+ "id": "5a9ec75f-3bcd-4829-94e6-452caa2cc0d2",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApplicationELB_HTTPCode_Target_5XX_Count_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApplicationELB_HTTPCode_Target_5XX_Count_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "702a8765",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "32985f2d",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "e4cf3d8b",
+ "key": {
+ "dataType": "string",
+ "id": "TargetGroup--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TargetGroup",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "234c77fd",
+ "key": {
+ "dataType": "string",
+ "id": "AvailabilityZone--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "AvailabilityZone",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "LoadBalancer--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "LoadBalancer",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{LoadBalancer}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a1cc5b1c-adb6-4a71-bb6e-99337ef6a9d4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "aws_ApplicationELB_HTTPCode_Target_5XX_Count_sum{TargetGroup=\"\"}"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Target 5XX",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes generated by the targets.\n\nSee HTTPCode_ELB_5XX_Count at https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html",
+ "fillSpans": false,
+ "id": "e16fb999-491b-4cfa-b9aa-d558f2132b6b",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApplicationELB_HTTPCode_ELB_5XX_Count_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApplicationELB_HTTPCode_ELB_5XX_Count_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5807a1e3",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "0dd63d0c",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "31ccfbae",
+ "key": {
+ "dataType": "string",
+ "id": "AvailabilityZone--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "AvailabilityZone",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "LoadBalancer--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "LoadBalancer",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{LoadBalancer}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "91d000c1-7697-4219-acb6-a43a5d455834",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Loadbalancer 5XX",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The total number of concurrent TCP connections active from clients to the load balancer and from the load balancer to targets.\n\nSee ActiveConnectionCount at https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html",
+ "fillSpans": false,
+ "id": "2be35406-693a-435b-a844-2df239be0b60",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApplicationELB_ActiveConnectionCount_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApplicationELB_ActiveConnectionCount_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "72c256c0",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "b433c2a1",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "8f5e7de0",
+ "key": {
+ "dataType": "string",
+ "id": "AvailabilityZone--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "AvailabilityZone",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "LoadBalancer--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "LoadBalancer",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{LoadBalancer}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "74429f26-2fe0-46f2-8b11-23c4f00a260a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Active Connections",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of connections that were not successfully established between the load balancer and target. This metric does not apply if the target is a Lambda function. This metric is not incremented for unsuccessful health check connections.\n\nSee TargetConnectionErrorCount at https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html",
+ "fillSpans": false,
+ "id": "480ecee2-1271-4dfd-a7bb-9f9845957c6e",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApplicationELB_TargetConnectionErrorCount_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApplicationELB_TargetConnectionErrorCount_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "9226a37c",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "c3ff0c8f",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "e3317bc2",
+ "key": {
+ "dataType": "",
+ "isColumn": false,
+ "key": "TargetGroup",
+ "type": ""
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "4e5c2324",
+ "key": {
+ "dataType": "",
+ "isColumn": false,
+ "key": "AvailabilityZone",
+ "type": ""
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "LoadBalancer--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "LoadBalancer",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{LoadBalancer}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "148daebb-8ae4-4a9f-b569-5e0e75f6b52d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Target Connection Errors",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of load balancer capacity units (LCU) used by your load balancer. You pay for the number of LCUs that you use per hour. When LCU reservation is active, ConsumedLCUs will report 0 if usage is below the reserved capacity, and will report values above 0 if usage exceeds the reserved LCUs\n\nSee ConsumedLCUs at https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html",
+ "fillSpans": false,
+ "id": "2243e542-0bbc-4e2a-a4dd-2e121abc9b95",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApplicationELB_ConsumedLCUs_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApplicationELB_ConsumedLCUs_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "20627274",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "cd861e27",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "LoadBalancer--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "LoadBalancer",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{LoadBalancer}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "38594221-7a5b-4d94-8775-26297f6cb882",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Consumed LCUs",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The total number of bytes processed by the load balancer over IPv4 and IPv6 (HTTP header and HTTP payload). This count includes traffic to and from clients and Lambda functions, and traffic from an Identity Provider (IdP) if user authentication is enabled.\n\nSee ProcessedBytes at https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html",
+ "fillSpans": false,
+ "id": "3bb56361-9a67-47ce-b186-ccee02e15f51",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApplicationELB_ProcessedBytes_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApplicationELB_ProcessedBytes_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7d4a3494",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "3c307858",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "fbca8724",
+ "key": {
+ "dataType": "string",
+ "id": "AvailabilityZone--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "AvailabilityZone",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "LoadBalancer--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "LoadBalancer",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{LoadBalancer}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e71d1223-7441-4a5d-b288-928a2903737d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Processed Bytes",
+ "yAxisUnit": "bytes"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The maximum number of load balancer capacity units (LCU) used by your load balancer at a given point in time. Only applicable when using LCU Reservation.\n\nSee PeakLCUs at https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html",
+ "fillSpans": false,
+ "id": "36cbc321-6c02-4d13-895e-955d71d376b4",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApplicationELB_PeakLCUs_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApplicationELB_PeakLCUs_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a416e862",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "ed7d0a39",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "LoadBalancer--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "LoadBalancer",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{LoadBalancer}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "c4728417-0c3c-4477-b8bd-0a2de16c342a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Peak LCUs",
+ "yAxisUnit": "none"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/api-gateway/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/api-gateway/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..9906e2335a
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/api-gateway/assets/dashboards/overview_dot.json
@@ -0,0 +1,1441 @@
+{
+ "description": "Overview of API Gateway resources in a region",
+ "image": "data:image/svg+xml,%3Csvg%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3Cdefs%3E%3ClinearGradient%20x1%3D%220%25%22%20y1%3D%22100%25%22%20x2%3D%22100%25%22%20y2%3D%220%25%22%20id%3D%22linearGradient-1%22%3E%3Cstop%20stop-color%3D%22%234D27A8%22%20offset%3D%220%25%22%3E%3C%2Fstop%3E%3Cstop%20stop-color%3D%22%23A166FF%22%20offset%3D%22100%25%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cg%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20fill%3D%22url(%23linearGradient-1)%22%3E%3Crect%20id%3D%22Rectangle%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2224%22%20height%3D%2224%22%3E%3C%2Frect%3E%3C%2Fg%3E%3Cpath%20d%3D%22M6%2C6.76751613%20L8%2C5.43446738%20L8%2C18.5659476%20L6%2C17.2328988%20L6%2C6.76751613%20Z%20M5%2C6.49950633%20L5%2C17.4999086%20C5%2C17.6669147%205.084%2C17.8239204%205.223%2C17.9159238%20L8.223%2C19.9159969%20C8.307%2C19.971999%208.403%2C20%208.5%2C20%20C8.581%2C20%208.662%2C19.9809993%208.736%2C19.9409978%20C8.898%2C19.8539947%209%2C19.6849885%209%2C19.4999817%20L9%2C16.9998903%20L10%2C16.9998903%20L10%2C15.9998537%20L9%2C15.9998537%20L9%2C7.99956118%20L10%2C7.99956118%20L10%2C6.99952461%20L9%2C6.99952461%20L9%2C4.49943319%20C9%2C4.31542646%208.898%2C4.14542025%208.736%2C4.0594171%20C8.574%2C3.97241392%208.377%2C3.98141425%208.223%2C4.08341798%20L5.223%2C6.08349112%20C5.084%2C6.17649452%205%2C6.33250022%205%2C6.49950633%20L5%2C6.49950633%20Z%20M19%2C17.2328988%20L17%2C18.5659476%20L17%2C5.43446738%20L19%2C6.76751613%20L19%2C17.2328988%20Z%20M19.777%2C6.08349112%20L16.777%2C4.08341798%20C16.623%2C3.98141425%2016.426%2C3.97241392%2016.264%2C4.0594171%20C16.102%2C4.14542025%2016%2C4.31542646%2016%2C4.49943319%20L16%2C6.99952461%20L15%2C6.99952461%20L15%2C7.99956118%20L16%2C7.99956118%20L16%2C15.9998537%20L15%2C15.9998537%20L15%2C16.9998903%20L16%2C16.9998903%20L16%2C19.4999817%20C16%2C19.6849885%2016.102%2C19.8539947%2016.264%2C19.9409978%20C16.338%2C19.9809993%2016.419%2C20%2016.5%2C20%20C16.597%2C20%2016.693%2C19.971999%2016.777%2C19.9159969%20L19.777%2C17.9159238%20C19.916%2C17.8239204%2020%2C17.6669147%2020%2C17.4999086%20L20%2C6.49950633%20C20%2C6.33250022%2019.916%2C6.17649452%2019.777%2C6.08349112%20L19.777%2C6.08349112%20Z%20M13%2C7.99956118%20L14%2C7.99956118%20L14%2C6.99952461%20L13%2C6.99952461%20L13%2C7.99956118%20Z%20M11%2C7.99956118%20L12%2C7.99956118%20L12%2C6.99952461%20L11%2C6.99952461%20L11%2C7.99956118%20Z%20M13%2C16.9998903%20L14%2C16.9998903%20L14%2C15.9998537%20L13%2C15.9998537%20L13%2C16.9998903%20Z%20M11%2C16.9998903%20L12%2C16.9998903%20L12%2C15.9998537%20L11%2C15.9998537%20L11%2C16.9998903%20Z%20M13.18%2C14.884813%20L10.18%2C12.3847215%20C10.065%2C12.288718%2010%2C12.1487129%2010%2C11.9997075%20C10%2C11.851702%2010.065%2C11.7106969%2010.18%2C11.6156934%20L13.18%2C9.11560199%20L13.82%2C9.88463011%20L11.281%2C11.9997075%20L13.82%2C14.1157848%20L13.18%2C14.884813%20Z%22%20id%3D%22Amazon-API-Gateway_Icon_16_Squid%22%20fill%3D%22%23FFFFFF%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E",
+ "layout": [
+ {
+ "h": 6,
+ "i": "b27e332f-8e3f-487a-845d-e332dc1464c3",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "d0a54459-0841-467f-88f7-e135b8c86fc7",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "210dc175-fbb7-44ef-88e0-b8530da4eaca",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "8efb6639-6168-4d8b-9b4f-5b5c82dea333",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "88f56881-7744-41e9-9c19-9f5446e291dc",
+ "w": 6,
+ "x": 0,
+ "y": 12
+ },
+ {
+ "h": 6,
+ "i": "d3b4ad8b-7b52-4bea-9bc7-47e18da7f38c",
+ "w": 6,
+ "x": 6,
+ "y": 12
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "API Gateway Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "Account": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account",
+ "id": "93447e60-3b35-407c-a86c-97254f641628",
+ "key": "93447e60-3b35-407c-a86c-97254f641628",
+ "modificationUUID": "5e1f8a79-e9b5-4230-af48-f2c117805b31",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'cloud.account.id') as `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_ApiGateway_Count_sum'\nGROUP BY `cloud.account.id`\n\n",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "Region": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Region",
+ "id": "613f7913-ace1-4cf5-bb4c-df91878ec40e",
+ "key": "613f7913-ace1-4cf5-bb4c-df91878ec40e",
+ "modificationUUID": "bb86427a-e4da-4440-93d3-0f53e65214ed",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 1,
+ "queryValue": "SELECT JSONExtractString(labels, 'cloud.region') as `cloud.region`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_ApiGateway_Count_sum'\n and JSONExtractString(labels, 'cloud.account.id') IN {{.Account}}\nGROUP BY `cloud.region`\n",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The total number API requests in a given period.\n\nSee Count at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details",
+ "fillSpans": false,
+ "id": "b27e332f-8e3f-487a-845d-e332dc1464c3",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApiGateway_Count_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApiGateway_Count_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d3e9ea95",
+ "key": {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "64c4ab5b",
+ "key": {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "2f4571a4",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "be3cf524",
+ "key": {
+ "dataType": "string",
+ "id": "Method--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Method",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "81918ce2",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "114c7ff4",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ApiName}} - {{Stage}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9fea4bca-7c22-49b6-8d24-43c985d89ac3",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Requests",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The time between when API Gateway receives a request from a client and when it returns a response to the client. The latency includes the integration latency and other API Gateway overhead.\n\nSee Latency at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details",
+ "fillSpans": false,
+ "id": "d0a54459-0841-467f-88f7-e135b8c86fc7",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApiGateway_Latency_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApiGateway_Latency_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "4b55a919",
+ "key": {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "01c610d9",
+ "key": {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "f102e7f0",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "0053bd12",
+ "key": {
+ "dataType": "string",
+ "id": "Method--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Method",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "3c67d1fc",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "e2a96f23",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ApiName}} - {{Stage}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "7b85940b-ac14-40da-9764-0fbb9c3cad31",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Latency",
+ "yAxisUnit": "ms"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of server-side errors captured in a given period.\n\nSee 5XXError at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details",
+ "fillSpans": false,
+ "id": "210dc175-fbb7-44ef-88e0-b8530da4eaca",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApiGateway_5XXError_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApiGateway_5XXError_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "3e4a6042",
+ "key": {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "5702170a",
+ "key": {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "9835e4d9",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "c986fbbe",
+ "key": {
+ "dataType": "string",
+ "id": "Method--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Method",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "b3ebaf28",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "f2030d94",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ApiName}} - {{Stage}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "ec0786eb-fb13-46eb-813b-c516bac57395",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "5XX Errors",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The time between when API Gateway relays a request to the backend and when it receives a response from the backend.\n\nSee IntegrationLatency at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details",
+ "fillSpans": false,
+ "id": "8efb6639-6168-4d8b-9b4f-5b5c82dea333",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApiGateway_IntegrationLatency_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApiGateway_IntegrationLatency_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "1a3f91b4",
+ "key": {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "33d0afbd",
+ "key": {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "f818f0fc",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "a090cf40",
+ "key": {
+ "dataType": "string",
+ "id": "Method--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Method",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "5f2f2892",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "960ee6d2",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ApiName}} - {{Stage}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "c1c0f0e6-712d-430e-9e76-af752b1dc09f",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Integration Latency",
+ "yAxisUnit": "ms"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of requests served from the API cache in a given period.\n\nSee CacheHitCount at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details",
+ "fillSpans": false,
+ "id": "88f56881-7744-41e9-9c19-9f5446e291dc",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApiGateway_CacheHitCount_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApiGateway_CacheHitCount_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "8016ef52",
+ "key": {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "6abb9f32",
+ "key": {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "86a54806",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "1e5b50b4",
+ "key": {
+ "dataType": "string",
+ "id": "Method--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Method",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "8ec09e30",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "d1622884",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ApiName}} - {{Stage}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "39a206dd-298c-4560-b3da-83a029cf3423",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Cache Hits",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of requests served from the backend in a given period, when API caching is enabled.\n\nSee CacheMissCount at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details",
+ "fillSpans": false,
+ "id": "d3b4ad8b-7b52-4bea-9bc7-47e18da7f38c",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ApiGateway_CacheMissCount_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ApiGateway_CacheMissCount_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6cbbb46e",
+ "key": {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "4dfbfe25",
+ "key": {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "24f91927",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "f03b27a8",
+ "key": {
+ "dataType": "string",
+ "id": "Method--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Method",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ },
+ {
+ "id": "f02d484d",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "4d8ddc75",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ApiName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ApiName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Stage--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Stage",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ApiName}} - {{Stage}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a5ef38e5-16a0-41c1-82b3-b6480ec4e524",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Cache Misses",
+ "yAxisUnit": "none"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/dynamodb/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/dynamodb/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..8d29059660
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/dynamodb/assets/dashboards/overview_dot.json
@@ -0,0 +1,2657 @@
+{
+ "description": "View DynamoDB metrics with an out-of-the-box dashboard.",
+ "image":"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODBweCIgaGVpZ2h0PSI4MHB4IiB2aWV3Qm94PSIwIDAgODAgODAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDY0ICg5MzUzNykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+CiAgICA8dGl0bGU+SWNvbi1BcmNoaXRlY3R1cmUvNjQvQXJjaF9BbWF6b24tRHluYW1vREJfNjQ8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjAlIiB5MT0iMTAwJSIgeDI9IjEwMCUiIHkyPSIwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMkUyN0FEIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM1MjdGRkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iSWNvbi1BcmNoaXRlY3R1cmUvNjQvQXJjaF9BbWF6b24tRHluYW1vREJfNjQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJJY29uLUFyY2hpdGVjdHVyZS1CRy82NC9EYXRhYmFzZSIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSI+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUiIHg9IjAiIHk9IjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCI+PC9yZWN0PgogICAgICAgIDwvZz4KICAgICAgICA8cGF0aCBkPSJNNTIuMDg1OTUyNSw1NC44NTAyNTA2IEM0OC43NDc5NTY5LDU3LjU0OTAzMzggNDEuNzQ0OTY2MSw1OC45NzUyOTI3IDM1LjA0Mzk3NDksNTguOTc1MjkyNyBDMjguMzQxOTgzOCw1OC45NzUyOTI3IDIxLjMzNjk5Myw1Ny41NDgwNDIgMTcuOTk5OTk3NCw1NC44NDkyNTg4IEwxNy45OTk5OTc0LDYwLjI4NDUxNSBMMTguMDAwOTk3NCw2MC4yODQ1MTUgQzE4LjAwMDk5NzQsNjIuOTk1MjAwMiAyNC45OTk5OTc0LDY2LjAxNjMyOTkgMzUuMDQzOTc0OSw2Ni4wMTYzMjk5IEM0NS4wNzk5NjE3LDY2LjAxNjMyOTkgNTIuMDc0OTUyNSw2Mi45OTkxNjc2IDUyLjA4NTk1MjUsNjAuMjkwNDY2IEw1Mi4wODU5NTI1LDU0Ljg1MDI1MDYgWiBNNTIuMDg2OTUyNSw0NC41MjIyNzIgTDU0LjA4Njk0OTksNDQuNTExMzYxOCBMNTQuMDg2OTQ5OSw0NC41MjIyNzIgQzU0LjA4Njk0OTksNDUuNzMwMzI3MSA1My40ODE5NTA3LDQ2Ljg1ODA0MzYgNTIuMzAzOTUyMiw0Ny44OTA1NDM5IEM1My43MzE5NTAzLDQ5LjE0NzE5OSA1NC4wODY5NDk5LDUwLjM4MDA0OTkgNTQuMDg2OTQ5OSw1MS4yNTc4MjQgQzU0LjA4Njk0OTksNTEuMjYzNzc1IDU0LjA4NTk0OTksNTEuMjY4NzM0MiA1NC4wODU5NDk5LDUxLjI3NDY4NTIgTDU0LjA4NTk0OTksNjAuMjg0NTE1IEw1NC4wODY5NDk5LDYwLjI4NDUxNSBDNTQuMDg2OTQ5OSw2NS4yOTUyNjU4IDQ0LjI3NDk2MjgsNjggMzUuMDQzOTc0OSw2OCBDMjUuODM0OTg3MSw2OCAxNi4wNDk5OTk5LDY1LjMwNzE2NzggMTYuMDAzLDYwLjMxOTIyOTIgQzE2LjAwMyw2MC4zMTQyNyAxNiw2MC4zMDkzMTA5IDE2LDYwLjMwNDM1MTcgTDE2LDUxLjI1NDg0ODUgQzE2LDUxLjI1Mjg2NDggMTYuMDAyLDUxLjI0OTg4OTMgMTYuMDAyLDUxLjI0NjkxMzggQzE2LjAwNSw1MC4zNjkxMzk4IDE2LjM2MDk5OTUsNDkuMTQxMjQ3OSAxNy43ODY5OTc2LDQ3Ljg4NzU2ODQgQzE2LjM2OTk5OTUsNDYuNjM1ODcyNSAxNi4wMSw0NS40MTQ5MjM2IDE2LjAwMSw0NC41NDQwOTI0IEwxNi4wMDIsNDQuNTQ0MDkyNCBDMTYuMDAyLDQ0LjU0MDEyNSAxNiw0NC41MzcxNDk1IDE2LDQ0LjUzMzE4MjIgTDE2LDM1LjQ4MzY3OSBDMTYsMzUuNDgwNzAzNSAxNi4wMDIsMzUuNDc3NzI4IDE2LjAwMiwzNS40NzQ3NTI1IEMxNi4wMDUsMzQuNTk2OTc4NCAxNi4zNjE5OTk1LDMzLjM2OTA4NjYgMTcuNzg3OTk3NiwzMi4xMTczOTA4IEMxNi4zNjk5OTk1LDMwLjg2NDcwMzEgMTYuMDEsMjkuNjQyNzYyMyAxNi4wMDEsMjguNzcyOTIyOSBMMTYuMDAyLDI4Ljc3MjkyMjkgQzE2LjAwMiwyOC43Njg5NTU2IDE2LDI4Ljc2NDk4ODIgMTYsMjguNzYxMDIwOSBMMTYsMTkuNzEyNTA5NSBDMTYsMTkuNzA5NTM0IDE2LjAwMiwxOS43MDY1NTg1IDE2LjAwMiwxOS43MDM1ODMgQzE2LjAxOSwxNC42OTk3NzUxIDI1LjgxOTk4NzEsMTIgMzUuMDQzOTc0OSwxMiBDNDAuMjU0OTY4MSwxMiA0NS4yNjA5NjE1LDEyLjgyODE4MjMgNDguNzc3OTU2OSwxNC4yNzIyOTQxIEw0OC4wMTI5NTc5LDE2LjEwNTIwNTQgQzQ0LjcyOTk2MjIsMTQuNzU3MzAxNSA0MC4wMDI5Njg0LDEzLjk4MzY3MDEgMzUuMDQzOTc0OSwxMy45ODM2NzAxIEMyNC45OTk5ODgyLDEzLjk4MzY3MDEgMTguMDAwOTk3NCwxNy4wMDQ3OTk4IDE4LjAwMDk5NzQsMTkuNzE3NDY4NyBDMTguMDAwOTk3NCwyMi40MjkxNDU4IDI0Ljk5OTk4ODIsMjUuNDUwMjc1NCAzNS4wNDM5NzQ5LDI1LjQ1MDI3NTQgQzM1LjMxNDk3NDYsMjUuNDUzMjUwOSAzNS41Nzk5NzQyLDI1LjQ1MDI3NTQgMzUuODQ3OTczOSwyNS40NDAzNTcxIEwzNS45MzE5NzM4LDI3LjQyMjA0MzUgQzM1LjYzNTk3NDIsMjcuNDMzOTQ1NiAzNS4zMzk5NzQ1LDI3LjQzMzk0NTYgMzUuMDQzOTc0OSwyNy40MzM5NDU2IEMyOC4zNDE5ODM4LDI3LjQzMzk0NTYgMjEuMzM2OTkzLDI2LjAwNjY5NDkgMTgsMjMuMzA3OTExNyBMMTgsMjguNzQwMTkyMyBMMTguMDAwOTk3NCwyOC43NDAxOTIzIEwxOC4wMDA5OTc0LDI4Ljc2MzAwNDYgQzE4LjAxMDk5NzQsMjkuODAzNDM5NSAxOS4wNzc5OTU5LDMwLjcxMTk2MDUgMTkuOTcxOTk0OCwzMS4yODkyMDg1IEMyMi42NjE5OTEyLDMzLjAwNDA5MTMgMjcuNDgxOTg0OSwzNC4xNzU0NDg1IDMyLjg1Njk3NzgsMzQuNDE4NDQ4MSBMMzIuNzY1OTc3OSwzNi40MDAxMzQ2IEMyNy4zMjA5ODUxLDM2LjE1MzE2NzcgMjIuNTUyOTkxNCwzNS4wMjM0Njc1IDE5LjQ4Mzk5NTQsMzMuMjkxNzIzNSBDMTguNzI3OTk2NCwzMy44NTcwNjk1IDE4LjAwMDk5NzQsMzQuNjIxNzc0MyAxOC4wMDA5OTc0LDM1LjQ4ODYzODIgQzE4LjAwMDk5NzQsMzguMjAwMzE1MyAyNC45OTk5ODgyLDQxLjIyMTQ0NDkgMzUuMDQzOTc0OSw0MS4yMjE0NDQ5IEMzNi4wMjg5NzM2LDQxLjIyMTQ0NDkgMzcuMDA2OTcyMyw0MS4xODg3MTQzIDM3Ljk1MTk3MTEsNDEuMTIzMjUzMiBMMzguMDkwOTcwOSw0My4xMDE5NjQyIEMzNy4xMDA5NzIyLDQzLjE3MDQwMDggMzYuMDc0OTczNiw0My4yMDUxMTUgMzUuMDQzOTc0OSw0My4yMDUxMTUgQzI4LjM0MTk4MzgsNDMuMjA1MTE1IDIxLjMzNjk5Myw0MS43Nzc4NjQ0IDE4LDM5LjA3OTA4MTEgTDE4LDQ0LjUxMTM2MTggTDE4LjAwMDk5NzQsNDQuNTExMzYxOCBDMTguMDEwOTk3NCw0NS41NzQ2MDkgMTkuMDc3OTk1OSw0Ni40ODIxMzgxIDE5Ljk3MTk5NDgsNDcuMDYwMzc4IEMyMy4wNDc5OTA3LDQ5LjAyMzIxOTYgMjguODIzOTgzMSw1MC4yNDUxNjA0IDM1LjA0Mzk3NDksNTAuMjQ1MTYwNCBMMzUuNDgzOTc0NCw1MC4yNDUxNjA0IEwzNS40ODM5NzQ0LDUyLjIyODgzMDUgTDM1LjA0Mzk3NDksNTIuMjI4ODMwNSBDMjguNzI0OTgzMiw1Mi4yMjg4MzA1IDIyLjk4MTk5MDgsNTEuMDU1NDg5NiAxOS40Njk5OTU0LDQ5LjA3MjgxMTMgQzE4LjcxNzk5NjQsNDkuNjM3MTY1NSAxOC4wMDA5OTc0LDUwLjM5NzkwMyAxOC4wMDA5OTc0LDUxLjI1NzgyNCBDMTguMDAwOTk3NCw1My45Njk1MDExIDI0Ljk5OTk4ODIsNTYuOTkxNjIyNSAzNS4wNDM5NzQ5LDU2Ljk5MTYyMjUgQzQ1LjA3OTk2MTcsNTYuOTkxNjIyNSA1Mi4wNzQ5NTI1LDUzLjk3NDQ2MDIgNTIuMDg1OTUyNSw1MS4yNjQ3NjY4IEw1Mi4wODU5NTI1LDUxLjI1NDg0ODUgTDUyLjA4NTk1MjUsNTEuMjUzODU2NiBDNTIuMDgzOTUyNSw1MC4zOTE5NTIgNTEuMzYzOTUzNCw0OS42MzEyMTQ1IDUwLjYwOTk1NDQsNDkuMDY2ODYwMyBDNTAuMTIxOTU1MSw0OS4zNDM1ODIzIDQ5LjU5ODk1NTgsNDkuNjEwMzg1OSA0OS4wMDM5NTY2LDQ5Ljg1NTM2OTIgTDQ4LjIzNzk1NzYsNDguMDIyNDU4IEM0OC45NjM5NTY2LDQ3LjcyMzkxNTYgNDkuNTkzOTU1OCw0Ny40MDE1NjkyIDUwLjExMDk1NTEsNDcuMDYyMzYxNiBDNTEuMDEyOTUzOSw0Ni40NzQyMDM0IDUyLjA4Njk1MjUsNDUuNTU0NzcyMyA1Mi4wODY5NTI1LDQ0LjUyMjI3MiBMNTIuMDg2OTUyNSw0NC41MjIyNzIgWiBNNjAuNjUyOTQxMiwzMC4wMTY2ODQxIEw1NS4wNDg5NDg2LDMwLjAxNjY4NDEgQzU0LjcxNzk0OSwzMC4wMTY2ODQxIDU0LjQwNjk0OTQsMjkuODU0MDIzMSA1NC4yMjE5NDk3LDI5LjU4MjI2MDMgQzU0LjAzNDk0OTksMjkuMzEwNDk3NSA1My45OTY5NSwyOC45NjQzNDcxIDU0LjExODk0OTgsMjguNjU5ODUzNyBMNTcuNTI3OTQ1MywyMC4xMzgwMDY4IEw0NC42MTg5NzAyLDIwLjEzODAwNjggTDM4LjYxODk3MDIsMzIuMDQwMDI3NiBMNDUuMDAwOTYxOCwzMi4wNDAwMjc2IEM0NS4zMTk5NjE0LDMyLjA0MDAyNzYgNDUuNjE5OTYxLDMyLjE5MTc3ODQgNDUuODA4OTYwOCwzMi40NDY2OCBDNDUuOTk1OTYwNSwzMi43MDI1NzM1IDQ2LjA1MDk2MDQsMzMuMDMwODcwOSA0NS45NTM5NjA2LDMzLjMzMzM4MDYgTDQwLjI1Nzk2ODEsNTEuMDg5MjEyIEw2MC42NTI5NDEyLDMwLjAxNjY4NDEgWiBNNjMuNzIxOTM3MiwyOS43MTIxOTA3IEwzOC43MjI5NzAxLDU1LjUzOTU3NiBDMzguNTI3OTcwMyw1NS43Mzk5MjY3IDM4LjI2NTk3MDcsNTUuODQ0MDY5NCAzOC4wMDA5NzEsNTUuODQ0MDY5NCBDMzcuODI0OTcxMyw1NS44NDQwNjk0IDM3LjY0Nzk3MTUsNTUuNzk5NDM2OCAzNy40ODk5NzE3LDU1LjcwNTIxMjQgQzM3LjA4OTk3MjIsNTUuNDY5MTU1NyAzNi45MDY5NzI1LDU0Ljk5MjA4MyAzNy4wNDc5NzIzLDU0LjU1MTcwODMgTDQzLjYzMzk2MzYsMzQuMDIzNjk3OCBMMzcuMDAwOTcyNCwzNC4wMjM2OTc4IEMzNi42NTM5NzI4LDM0LjAyMzY5NzggMzYuMzMyOTczMiwzMy44NDYxNTkzIDM2LjE0OTk3MzUsMzMuNTUzNTY3OSBDMzUuOTY3OTczNywzMy4yNjA5NzY2IDM1Ljk1MDk3MzcsMzIuODk1OTgxMyAzNi4xMDY5NzM1LDMyLjU4ODUxMjQgTDQzLjEwNjk2NDMsMTguNzAyODIxNCBDNDMuMjc1OTY0MSwxOC4zNjY1ODkzIDQzLjYyMTk2MzYsMTguMTU0MzM2NiA0NC4wMDA5NjMxLDE4LjE1NDMzNjYgTDU5LjAwMDk0MzQsMTguMTU0MzM2NiBDNTkuMzMxOTQzLDE4LjE1NDMzNjYgNTkuNjQyOTQyNSwxOC4zMTc5ODk0IDU5LjgyNzk0MjMsMTguNTg4NzYwNCBDNjAuMDE0OTQyMSwxOC44NjE1MTUgNjAuMDUyOTQyLDE5LjIwNjY3MzYgNTkuOTMwOTQyMiwxOS41MTIxNTg4IEw1Ni41MjE5NDY3LDI4LjAzMzAxMzkgTDYyLjk5OTkzODEsMjguMDMzMDEzOSBDNjMuMzk5OTM3NiwyOC4wMzMwMTM5IDYzLjc2MjkzNzEsMjguMjcxMDU0NCA2My45MTk5MzY5LDI4LjYzNjA0OTcgQzY0LjA3NjkzNjcsMjkuMDAyMDM2OCA2My45OTg5MzY4LDI5LjQyNTU1MDQgNjMuNzIxOTM3MiwyOS43MTIxOTA3IEw2My43MjE5MzcyLDI5LjcxMjE5MDcgWiBNMTkuNDU0OTk1NSw2MC42NzQzMDYyIEMyMC44NzE5OTM2LDYxLjQ3MjczMzQgMjIuNjU1OTkxMiw2Mi4xNDQyMDU3IDI0Ljc1Njk4ODUsNjIuNjY3ODk0NyBMMjUuMjQ0OTg3OCw2MC43NDM3MzQ2IEMyMy4zNDU5OTAzLDYwLjI3MDYyOTMgMjEuNjg1OTkyNSw1OS42NDk3NDA1IDIwLjQ0Mjk5NDIsNTguOTQ5NTA1IEwxOS40NTQ5OTU1LDYwLjY3NDMwNjIgWiBNMjQuNzU2OTg4NSw0Ni43OTg1MzM1IEwyNS4yNDQ5ODc4LDQ0Ljg3NTM2NTMgQzIzLjM0NTk5MDMsNDQuNDAxMjY4MSAyMS42ODU5OTI1LDQzLjc4MDM3OTQgMjAuNDQyOTk0Miw0My4wODAxNDM4IEwxOS40NTQ5OTU1LDQ0LjgwNDk0NSBDMjAuODcxOTkzNiw0NS42MDMzNzIyIDIyLjY1NDk5MTIsNDYuMjc0ODQ0NiAyNC43NTY5ODg1LDQ2Ljc5ODUzMzUgTDI0Ljc1Njk4ODUsNDYuNzk4NTMzNSBaIE0xOS40NTQ5OTU1LDI4LjkzNTU4MzkgTDIwLjQ0Mjk5NDIsMjcuMjEwNzgyNyBDMjEuNjgzOTkyNSwyNy45MTEwMTgyIDIzLjM0NDk5MDMsMjguNTMwOTE1MSAyNS4yNDQ5ODc4LDI5LjAwNjAwNDEgTDI0Ljc1Njk4ODUsMzAuOTI5MTcyMyBDMjIuNjUyOTkxMiwzMC40MDQ0OTE2IDIwLjg2OTk5MzYsMjkuNzMzMDE5MyAxOS40NTQ5OTU1LDI4LjkzNTU4MzkgTDE5LjQ1NDk5NTUsMjguOTM1NTgzOSBaIiBpZD0iQW1hem9uLUR5bmFtb0RCX0ljb25fNjRfU3F1aWQiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4KICAgIDwvZz4KPC9zdmc+",
+ "layout": [
+ {
+ "h": 6,
+ "i": "9e1d91ec-fb66-4cff-b5c5-282270ebffb5",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "9a2daf2e-39bc-445d-947f-617c27fadd0f",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "5b50997d-3bca-466a-bdeb-841b2e49fd65",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "889c36ab-4d0c-4328-9c3c-6558aad6be89",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "0c3b97fe-56e0-4ce6-99f4-fd1cbd24f93e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 12
+ },
+ {
+ "h": 6,
+ "i": "70980d38-ee3c-47be-9520-e371df3b021a",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 12
+ },
+ {
+ "h": 6,
+ "i": "fe1b71b5-1a3f-41c0-b6c2-46bf934787ad",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 18
+ },
+ {
+ "h": 6,
+ "i": "cc0938a5-af82-4bd8-b10e-67eabe717ee0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 18
+ },
+ {
+ "h": 6,
+ "i": "4bb63c27-5eb4-4904-9947-42ffce15e92e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 24
+ },
+ {
+ "h": 6,
+ "i": "5ffbe527-8cf3-4ed8-ac2d-8739fa7fa9af",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 24
+ },
+ {
+ "h": 6,
+ "i": "a02f64ac-e73e-4d4c-a26b-fcfc4265c148",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 30
+ },
+ {
+ "h": 6,
+ "i": "014e377d-b7c1-4469-a137-be34d7748f31",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 30
+ },
+ {
+ "h": 6,
+ "i": "b1b75926-7308-43b3-bcad-60f369715f0b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 36
+ },
+ {
+ "h": 6,
+ "i": "90f4d19d-8785-4a7a-97cf-c967108e1487",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 36
+ },
+ {
+ "h": 6,
+ "i": "5412cdad-174b-462b-916e-4e3de477446b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 42
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "DynamoDB Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "1f7a94df-9735-4bfa-a1b8-dca8ac29f945": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "Account Region",
+ "id": "1f7a94df-9735-4bfa-a1b8-dca8ac29f945",
+ "key": "1f7a94df-9735-4bfa-a1b8-dca8ac29f945",
+ "modificationUUID": "8ef772a1-7df9-46a2-84e7-ab0c0bfc6886",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 1,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.region') AS region\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name like '%aws_DynamoDB%' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} GROUP BY region",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "93ee15bf-baab-4abf-8828-fe6e75518417": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account ID",
+ "id": "93ee15bf-baab-4abf-8828-fe6e75518417",
+ "key": "93ee15bf-baab-4abf-8828-fe6e75518417",
+ "modificationUUID": "409e6a7e-1ec1-4611-8624-492a3aac6ca0",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.account.id') AS `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name like '%aws_DynamoDB%' GROUP BY `cloud.account.id`",
+ "showALLOption": false,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "fd28f0e0-d4ec-4bcd-9c45-32395cb0c55b": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "DynamoDB Tables",
+ "id": "fd28f0e0-d4ec-4bcd-9c45-32395cb0c55b",
+ "modificationUUID": "8ebb9032-7e56-4981-8036-efdfc413f8a8",
+ "multiSelect": true,
+ "name": "Table",
+ "order": 2,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'TableName') AS table FROM signoz_metrics.distributed_time_series_v4_1day WHERE metric_name like '%aws_DynamoDB%' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} AND JSONExtractString(labels, 'cloud.region') IN {{.Region}} and table != '' GROUP BY table\n",
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "9e1d91ec-fb66-4cff-b5c5-282270ebffb5",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_AccountMaxReads_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_AccountMaxReads_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "fc55895c",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "8b3f3e0b",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "4fdb1c6c-8c7f-4f8b-a468-9326c811981a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Account Max Reads",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "5b50997d-3bca-466a-bdeb-841b2e49fd65",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_AccountMaxTableLevelReads_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_AccountMaxTableLevelReads_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f7b176f8",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "9a023ab7",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "310efa3b-d68a-4630-b279-bcbc22ddbefb",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Account Max Table Level Reads",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "889c36ab-4d0c-4328-9c3c-6558aad6be89",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_AccountMaxTableLevelWrites_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_AccountMaxTableLevelWrites_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "ec5ebf95",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "5b2fb00e",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "473de955-bc5c-4a66-aa8d-2e37502c5643",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Account Max Table Level Writes",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "9a2daf2e-39bc-445d-947f-617c27fadd0f",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_AccountMaxWrites_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_AccountMaxWrites_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "3815cf09",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "a783bd91",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "1115aaa1-fdb0-47a1-af79-8c6d439747d4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Account Max Writes",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "0c3b97fe-56e0-4ce6-99f4-fd1cbd24f93e",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_AccountProvisionedReadCapacityUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_AccountProvisionedReadCapacityUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "edcbcb83",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "224766cb",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "d42bc3cd-f457-42eb-936e-c931b0c77f61",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Account Provisioned Read Capacity",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "70980d38-ee3c-47be-9520-e371df3b021a",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_AccountProvisionedWriteCapacityUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_AccountProvisionedWriteCapacityUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "c237482a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "e3a117d5",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "d06d2f3d-8878-4c53-a8f1-10024091887a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Account Provisioned Write Capacity",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "fe1b71b5-1a3f-41c0-b6c2-46bf934787ad",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_ConsumedReadCapacityUnits_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_ConsumedReadCapacityUnits_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "b867513b",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "9c10cbaa",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "4ff7fb7c",
+ "key": {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Table"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{TableName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "32c9f178-073c-4d1f-8193-76f804776df0",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Consumed Read Capacity",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "cc0938a5-af82-4bd8-b10e-67eabe717ee0",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_ConsumedWriteCapacityUnits_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_ConsumedWriteCapacityUnits_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7e2aa806",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "dd49e062",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "e7ada865",
+ "key": {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Table"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{TableName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "40397368-92df-42b9-b0e6-0e7dc7984bc4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Consumed Write Capacity",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "4bb63c27-5eb4-4904-9947-42ffce15e92e",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_MaxProvisionedTableReadCapacityUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_MaxProvisionedTableReadCapacityUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "b3e029fa",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "e6764d50",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "6a33d44a-a337-422f-a964-89b88804343f",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Max Provisioned Table Read Capacity",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "5ffbe527-8cf3-4ed8-ac2d-8739fa7fa9af",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_MaxProvisionedTableWriteCapacityUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_MaxProvisionedTableWriteCapacityUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "80ba9142",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "9c802cf0",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a98b7d13-63d3-46cf-b4e7-686b3be7d9f9",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Max Provisioned Table Write Capacity",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "a02f64ac-e73e-4d4c-a26b-fcfc4265c148",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_ReturnedItemCount_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_ReturnedItemCount_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "db6edb77",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "8b86de4a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "a8d39d03",
+ "key": {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Table"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{TableName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "6322f225-471d-43a2-b13e-f2312c1a7b57",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Returned Item Count",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "014e377d-b7c1-4469-a137-be34d7748f31",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_SuccessfulRequestLatency_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_SuccessfulRequestLatency_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "93bef7f0",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "4a293ec8",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "2e2286c6",
+ "key": {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Table"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{TableName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "6ad1cbfe-9581-4d99-a14e-50bc5fef699f",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Successful Request Latency",
+ "yAxisUnit": "ms"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "b1b75926-7308-43b3-bcad-60f369715f0b",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_ThrottledRequests_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_ThrottledRequests_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "28fcd3cd",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "619578e5",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "a6bc481e",
+ "key": {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Table"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "TableName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TableName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{TableName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "fd358cf0-a0b0-4106-a89c-a5196297c23b",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Max Throttled Requests",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "5412cdad-174b-462b-916e-4e3de477446b",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_UserErrors_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_UserErrors_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5a060b5e",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "3a1cb5ff",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "17db2e6d-d9dc-4568-85ea-ea4b373dfc5e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "User Errors",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "90f4d19d-8785-4a7a-97cf-c967108e1487",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_DynamoDB_WriteThrottleEvents_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_DynamoDB_WriteThrottleEvents_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "58bc06b3",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "d6d7a8fb",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "713c6c70-3a62-4b67-8a67-7917ca9d4fbf",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Max Write Throttle Events",
+ "yAxisUnit": "none"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/ec2/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/ec2/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..72ed3d5103
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/ec2/assets/dashboards/overview_dot.json
@@ -0,0 +1,1446 @@
+{
+ "description": "Overview of EC2 instances",
+ "image": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIj4KICA8cGF0aCBmaWxsPSIjOUQ1MDI1IiBkPSJNMS43MDIgMi45OEwxIDMuMzEydjkuMzc2bC43MDIuMzMyIDIuODQyLTQuNzc3TDEuNzAyIDIuOTh6IiAvPgogIDxwYXRoIGZpbGw9IiNGNTg1MzYiIGQ9Ik0zLjMzOSAxMi42NTdsLTEuNjM3LjM2M1YyLjk4bDEuNjM3LjM1M3Y5LjMyNHoiIC8+CiAgPHBhdGggZmlsbD0iIzlENTAyNSIgZD0iTTIuNDc2IDIuNjEybC44NjMtLjQwNiA0LjA5NiA2LjIxNi00LjA5NiA1LjM3Mi0uODYzLS40MDZWMi42MTJ6IiAvPgogIDxwYXRoIGZpbGw9IiNGNTg1MzYiIGQ9Ik01LjM4IDEzLjI0OGwtMi4wNDEuNTQ2VjIuMjA2bDIuMDQuNTQ4djEwLjQ5NHoiIC8+CiAgPHBhdGggZmlsbD0iIzlENTAyNSIgZD0iTTQuMyAxLjc1bDEuMDgtLjUxMiA2LjA0MyA3Ljg2NC02LjA0MyA1LjY2LTEuMDgtLjUxMVYxLjc0OXoiIC8+CiAgPHBhdGggZmlsbD0iI0Y1ODUzNiIgZD0iTTcuOTk4IDEzLjg1NmwtMi42MTguOTA2VjEuMjM4bDIuNjE4LjkwOHYxMS43MXoiIC8+CiAgPHBhdGggZmlsbD0iIzlENTAyNSIgZD0iTTYuNjAyLjY2TDcuOTk4IDBsNi41MzggOC40NTNMNy45OTggMTZsLTEuMzk2LS42NlYuNjZ6IiAvPgogIDxwYXRoIGZpbGw9IiNGNTg1MzYiIGQ9Ik0xNSAxMi42ODZMNy45OTggMTZWMEwxNSAzLjMxNHY5LjM3MnoiIC8+Cjwvc3ZnPg==",
+ "layout": [
+ {
+ "h": 5,
+ "i": "b8a20569-7e4f-40d0-ada6-7736cfadae06",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "b668ba49-d126-4f2d-9eb5-b4cfbfaf94d1",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "6fced7be-8a73-4b9b-8440-f2142230268c",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "20dbaec7-9a16-47ad-af3b-f56375db8e69",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "827a354b-1fff-400b-8172-c41e4c830eb5",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "05de543a-73a2-4221-b784-263749d39b1e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 10
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "EC2 Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "11b96105-b752-47ef-88bc-832f248cf855": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account",
+ "id": "11b96105-b752-47ef-88bc-832f248cf855",
+ "key": "11b96105-b752-47ef-88bc-832f248cf855",
+ "modificationUUID": "23866855-0966-45ae-99cd-53fab002a1fa",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'cloud.account.id') as `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_EC2_CPUUtilization_sum'\nGROUP BY `cloud.account.id`",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "63a394bf-4acd-4f14-bf0a-f9dc5e4f00c2": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Region",
+ "id": "63a394bf-4acd-4f14-bf0a-f9dc5e4f00c2",
+ "modificationUUID": "d3060c9c-fa76-4fc3-bcfa-e417c90717fa",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 0,
+ "queryValue": "\nSELECT JSONExtractString(labels, 'cloud.region') as `cloud.region`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_EC2_CPUUtilization_sum'\n and JSONExtractString(labels, 'cloud.account.id') IN {{.Account}}\nGROUP BY `cloud.region`",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "b8a20569-7e4f-40d0-ada6-7736cfadae06",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_EC2_CPUUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_EC2_CPUUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d302d50d",
+ "key": {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ },
+ {
+ "id": "e6c54e87",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "7907211a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{service.instance.id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "170f1610-b7d0-4628-aca4-207c122b3709",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPU Utilization",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "Percentage of available CPU credits that were utilizaed",
+ "fillSpans": false,
+ "id": "b668ba49-d126-4f2d-9eb5-b4cfbfaf94d1",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_EC2_CPUCreditUsage_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_EC2_CPUCreditUsage_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "30ded0dc",
+ "key": {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ },
+ {
+ "id": "c935f6ec",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "d092fef8",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{service.instance.id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0643cc76-eedd-4101-bd7a-ec810a3e9b8a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPU Credits Utilization",
+ "yAxisUnit": "percentunit"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "6fced7be-8a73-4b9b-8440-f2142230268c",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_EC2_EBSReadBytes_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_EC2_EBSReadBytes_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a5fbfa4a",
+ "key": {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ },
+ {
+ "id": "87071f13",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "c84a88c4",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{service.instance.id}} - Reads",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_EC2_EBSWriteBytes_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_EC2_EBSWriteBytes_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "4d10ca4b",
+ "key": {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ },
+ {
+ "id": "fc2db932",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "a3fd74c0",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{service.instance.id}} - Writes",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "43627952-52aa-40fd-9c04-cb0e3c123f98",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "EBS Read/Write Bytes",
+ "yAxisUnit": "binBps"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "20dbaec7-9a16-47ad-af3b-f56375db8e69",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_EC2_EBSReadOps_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_EC2_EBSReadOps_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "85d84806",
+ "key": {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ },
+ {
+ "id": "f2074606",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "134c7ca9",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{service.instance.id}} - Reads",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_EC2_EBSWriteOps_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_EC2_EBSWriteOps_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "47e0c00f",
+ "key": {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ },
+ {
+ "id": "0a157dfe",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "a7d1e8df",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{service.instance.id}} - Writes",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a70e41d1-27dc-4e91-bf13-23d8bd2f3c49",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "EBS Read/Write Ops",
+ "yAxisUnit": "cps"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "827a354b-1fff-400b-8172-c41e4c830eb5",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_EC2_NetworkIn_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_EC2_NetworkIn_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "12d6748d",
+ "key": {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ },
+ {
+ "id": "df3a8da1",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "81ec53f4",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{service.instance.id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "ac2ce4a6-f595-4d2a-bc22-ddc51c2d59ff",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network Incoming",
+ "yAxisUnit": "binBps"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "05de543a-73a2-4221-b784-263749d39b1e",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_EC2_NetworkOut_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_EC2_NetworkOut_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d301aaa7",
+ "key": {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ },
+ {
+ "id": "e8afaa3b",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "d67487ab",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "service.instance.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "service.instance.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{service.instance.id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "94027537-0da8-4ac5-a880-532b975a818c",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network Outgoing",
+ "yAxisUnit": "binBps"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/ecs/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/ecs/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..ffb80b4c33
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/ecs/assets/dashboards/overview_dot.json
@@ -0,0 +1,851 @@
+{
+ "description": "View key AWS ECS metrics with an out of the box dashboard.\n",
+ "image":"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20width%3D%2280px%22%20height%3D%2280px%22%20viewBox%3D%220%200%2080%2080%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3C!--%20Generator%3A%20Sketch%2064%20(93537)%20-%20https%3A%2F%2Fsketch.com%20--%3E%3Ctitle%3EIcon-Architecture%2F64%2FArch_Amazon-Elastic-Container-Service_64%3C%2Ftitle%3E%3Cdesc%3ECreated%20with%20Sketch.%3C%2Fdesc%3E%3Cdefs%3E%3ClinearGradient%20x1%3D%220%25%22%20y1%3D%22100%25%22%20x2%3D%22100%25%22%20y2%3D%220%25%22%20id%3D%22linearGradient-1%22%3E%3Cstop%20stop-color%3D%22%23C8511B%22%20offset%3D%220%25%22%3E%3C%2Fstop%3E%3Cstop%20stop-color%3D%22%23FF9900%22%20offset%3D%22100%25%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cg%20id%3D%22Icon-Architecture%2F64%2FArch_Amazon-Elastic-Container-Service_64%22%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20id%3D%22Icon-Architecture-BG%2F64%2FContainers%22%20fill%3D%22url(%23linearGradient-1)%22%3E%3Crect%20id%3D%22Rectangle%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2280%22%20height%3D%2280%22%3E%3C%2Frect%3E%3C%2Fg%3E%3Cpath%20d%3D%22M64%2C48.2340095%20L56%2C43.4330117%20L56%2C32.0000169%20C56%2C31.6440171%2055.812%2C31.3150172%2055.504%2C31.1360173%20L44%2C24.4260204%20L44%2C14.7520248%20L64%2C26.5710194%20L64%2C48.2340095%20Z%20M65.509%2C25.13902%20L43.509%2C12.139026%20C43.199%2C11.9560261%2042.818%2C11.9540261%2042.504%2C12.131026%20C42.193%2C12.3090259%2042%2C12.6410257%2042%2C13.0000256%20L42%2C25.0000201%20C42%2C25.3550199%2042.189%2C25.6840198%2042.496%2C25.8640197%20L54%2C32.5740166%20L54%2C44.0000114%20C54%2C44.3510113%2054.185%2C44.6770111%2054.486%2C44.857011%20L64.486%2C50.8570083%20C64.644%2C50.9520082%2064.822%2C51%2065%2C51%20C65.17%2C51%2065.34%2C50.9570082%2065.493%2C50.8700083%20C65.807%2C50.6930084%2066%2C50.3600085%2066%2C50%20L66%2C26.0000196%20C66%2C25.6460198%2065.814%2C25.31902%2065.509%2C25.13902%20L65.509%2C25.13902%20Z%20M40.445%2C66.863001%20L17%2C54.3990067%20L17%2C26.5710194%20L37%2C14.7520248%20L37%2C24.4510204%20L26.463%2C31.1560173%20C26.175%2C31.3400172%2026%2C31.6580171%2026%2C32.0000169%20L26%2C49.0000091%20C26%2C49.373009%2026.208%2C49.7150088%2026.538%2C49.8870087%20L39.991%2C56.8870055%20C40.28%2C57.0370055%2040.624%2C57.0380055%2040.912%2C56.8880055%20L53.964%2C50.1440086%20L61.996%2C54.9640064%20L40.445%2C66.863001%20Z%20M64.515%2C54.1420068%20L54.515%2C48.1420095%20C54.217%2C47.9640096%2053.849%2C47.9520096%2053.541%2C48.1120095%20L40.455%2C54.8730065%20L28%2C48.3930094%20L28%2C32.5490167%20L38.537%2C25.8440197%20C38.825%2C25.6600198%2039%2C25.3420199%2039%2C25.0000201%20L39%2C13.0000256%20C39%2C12.6410257%2038.808%2C12.3090259%2038.496%2C12.131026%20C38.184%2C11.9540261%2037.802%2C11.9560261%2037.491%2C12.139026%20L15.491%2C25.13902%20C15.187%2C25.31902%2015%2C25.6460198%2015%2C26.0000196%20L15%2C55%20C15%2C55.3690062%2015.204%2C55.7090061%2015.53%2C55.883006%20L39.984%2C68.8830001%20C40.131%2C68.961%2040.292%2C69%2040.453%2C69%20C40.62%2C69%2040.786%2C68.958%2040.937%2C68.8750001%20L64.484%2C55.875006%20C64.797%2C55.7020061%2064.993%2C55.3750062%2065.0001416%2C55.0180064%20C65.006%2C54.6600066%2064.821%2C54.3260067%2064.515%2C54.1420068%20L64.515%2C54.1420068%20Z%22%20id%3D%22Amazon-Elastic-Container-Service_Icon_64_Squid%22%20fill%3D%22%23FFFFFF%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E",
+ "layout": [
+ {
+ "h": 6,
+ "i": "f78becf8-0328-48b4-84b6-ff4dac325940",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "2b4eac06-b426-4f78-b874-2e1734c4104b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "5bea2bc0-13a2-4937-bccb-60ffe8a43ad5",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "6fac67b0-50ec-4b43-ac4b-320a303d0369",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "AWS ECS Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "51f4fa2b-89c7-47c2-9795-f32cffaab985": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account ID",
+ "id": "51f4fa2b-89c7-47c2-9795-f32cffaab985",
+ "key": "51f4fa2b-89c7-47c2-9795-f32cffaab985",
+ "modificationUUID": "7b814d17-8fff-4ed6-a4ea-90e3b1a97584",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.account.id') AS `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_ECS_MemoryUtilization_max' GROUP BY `cloud.account.id`",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "9faf0f4b-b245-4b3c-83a3-60cfa76dfeb0": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "Account Region",
+ "id": "9faf0f4b-b245-4b3c-83a3-60cfa76dfeb0",
+ "key": "9faf0f4b-b245-4b3c-83a3-60cfa76dfeb0",
+ "modificationUUID": "3b5f499b-22a3-4c8a-847c-8d3811c9e6b2",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 1,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.region') AS region\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_ECS_MemoryUtilization_max' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} GROUP BY region",
+ "showALLOption": false,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "bfbdbcbe-a168-4d81-b108-36339e249116": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "ECS Cluster Name",
+ "id": "bfbdbcbe-a168-4d81-b108-36339e249116",
+ "key": "bfbdbcbe-a168-4d81-b108-36339e249116",
+ "modificationUUID": "9fb0d63c-ac6c-497d-82b3-17d95944e245",
+ "multiSelect": true,
+ "name": "Cluster",
+ "order": 2,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'ClusterName') AS cluster\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_ECS_MemoryUtilization_max' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} AND JSONExtractString(labels, 'cloud.region') IN {{.Region}}\nGROUP BY cluster",
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "f78becf8-0328-48b4-84b6-ff4dac325940",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ECS_MemoryUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ECS_MemoryUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "26ac617d",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "57172ed9",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "49b9f85e",
+ "key": {
+ "dataType": "string",
+ "id": "ClusterName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ClusterName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ServiceName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ServiceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "ClusterName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ClusterName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ServiceName}} ({{ClusterName}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "56068fdd-d523-4117-92fa-87c6518ad07c",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Maximum Memory Utilization",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "2b4eac06-b426-4f78-b874-2e1734c4104b",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ECS_MemoryUtilization_min--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ECS_MemoryUtilization_min",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "min",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "cd4b8848",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "aa5115c6",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "f60677b6",
+ "key": {
+ "dataType": "string",
+ "id": "ClusterName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ClusterName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ServiceName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ServiceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "ClusterName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ClusterName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ServiceName}} ({{ClusterName}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "min",
+ "stepInterval": 60,
+ "timeAggregation": "min"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "fb19342e-cbde-40d8-b12f-ad108698356b",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Minimum Memory Utilization",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "5bea2bc0-13a2-4937-bccb-60ffe8a43ad5",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ECS_CPUUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ECS_CPUUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "2c13c8ee",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "f489f6a8",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "94012320",
+ "key": {
+ "dataType": "string",
+ "id": "ClusterName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ClusterName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ServiceName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ServiceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "ClusterName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ClusterName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ServiceName}} ({{ClusterName}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "273e0a76-c780-4b9a-9b03-2649d4227173",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Maximum CPU Utilization",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "6fac67b0-50ec-4b43-ac4b-320a303d0369",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ECS_CPUUtilization_min--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ECS_CPUUtilization_min",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "min",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "758ba906",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "4ffe6bf7",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "53d98059",
+ "key": {
+ "dataType": "string",
+ "id": "ClusterName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ClusterName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "ServiceName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ServiceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "ClusterName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "ClusterName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{ServiceName}} ({{ClusterName}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "min",
+ "stepInterval": 60,
+ "timeAggregation": "min"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "c89482b3-5a98-4e2c-be0d-ef036d7dac05",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Minimum CPU Utilization",
+ "yAxisUnit": "none"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/elasticache/assets/dashboards/redis_overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/elasticache/assets/dashboards/redis_overview_dot.json
new file mode 100644
index 0000000000..4cfbd83db2
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/elasticache/assets/dashboards/redis_overview_dot.json
@@ -0,0 +1,2706 @@
+{
+ "description": "Redis Overview for AWS ElastiCache",
+ "image": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODBweCIgaGVpZ2h0PSI4MHB4IiB2aWV3Qm94PSIwIDAgODAgODAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDY0ICg5MzUzNykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+CiAgICA8dGl0bGU+SWNvbi1BcmNoaXRlY3R1cmUvNjQvQXJjaF9BbWF6b24tRWxhc3RpQ2FjaGVfNjQ8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjAlIiB5MT0iMTAwJSIgeDI9IjEwMCUiIHkyPSIwJSIgaWQ9ImxpbmVhckdyYWRpZW50LTEiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMkUyN0FEIiBvZmZzZXQ9IjAlIj48L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM1MjdGRkYiIG9mZnNldD0iMTAwJSI+PC9zdG9wPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iSWNvbi1BcmNoaXRlY3R1cmUvNjQvQXJjaF9BbWF6b24tRWxhc3RpQ2FjaGVfNjQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJJY29uLUFyY2hpdGVjdHVyZS1CRy82NC9EYXRhYmFzZSIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSI+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUiIHg9IjAiIHk9IjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCI+PC9yZWN0PgogICAgICAgIDwvZz4KICAgICAgICA8cGF0aCBkPSJNNTEsNjEuNTU1NDg2NCBMNTEsNTUuNzAyOTM0MiBDNDguNDY2LDU3LjM0MDA4ODcgNDMuOTA0LDU4LjExMzE2MTYgMzkuNTU2LDU4LjExMzE2MTYgQzM0LjgxNiw1OC4xMTMxNjE2IDMxLjEyMSw1Ny4yODYwODM2IDI5LDU1Ljg2Nzk0OTggTDI5LDYxLjU1NTQ4NjQgQzI5LDYzLjI0ODY0NjEgMzIuOTQ4LDY0Ljk5OTgxMTMgMzkuNTU2LDY0Ljk5OTgxMTMgQzQ2LjMsNjQuOTk5ODExMyA1MSw2My4xODQ2NDAxIDUxLDYxLjU1NTQ4NjQgTDUxLDYxLjU1NTQ4NjQgWiBNMzkuNTU2LDQ5LjIyMDMyMjcgQzM0LjgxNiw0OS4yMjAzMjI3IDMxLjEyMSw0OC4zOTQyNDQ3IDI5LDQ2Ljk3NjExMSBMMjksNTIuNjg2NjQ5NyBDMjkuMDMxLDU0LjM3MzgwODggMzIuOTczLDU2LjExMjk3MjkgMzkuNTU2LDU2LjExMjk3MjkgQzQ2LjI3OSw1Ni4xMTI5NzI5IDUwLjk2OSw1NC4zMDg4MDI3IDUxLDUyLjY4MjY0OTMgTDUxLDQ2LjgxMDA5NTMgQzQ4LjQ2Niw0OC40NDgyNDk4IDQzLjkwNCw0OS4yMjAzMjI3IDM5LjU1Niw0OS4yMjAzMjI3IEwzOS41NTYsNDkuMjIwMzIyNyBaIE01MSw0My43OTA4MTA1IEw1MSwzNy4wMjkxNzI2IEM0OC40NjYsMzguNjY2MzI3IDQzLjkwNCwzOS40MzkzOTk5IDM5LjU1NiwzOS40MzkzOTk5IEMzNC44MTYsMzkuNDM5Mzk5OSAzMS4xMjEsMzguNjEzMzIyIDI5LDM3LjE5NTE4ODIgTDI5LDQzLjc5NDgxMDggQzI5LjAzMSw0NS40ODE5NyAzMi45NzMsNDcuMjIwMTM0IDM5LjU1Niw0Ny4yMjAxMzQgQzQ2LjI3OSw0Ny4yMjAxMzQgNTAuOTY5LDQ1LjQxNTk2MzggNTEsNDMuNzkwODEwNSBMNTEsNDMuNzkwODEwNSBaIE0yOC45OTcsMzMuOTkyODg2MSBDMjguOTk3LDMzLjk5NTg4NjQgMjguOTk4LDMzLjk5ODg4NjcgMjguOTk4LDM0LjAwMTg4NyBMMjksMzQuMDAxODg3IEwyOSwzNC4wMTI4ODggQzI5LjAzMSwzNS43MDAwNDcyIDMyLjk3MywzNy40MzkyMTEyIDM5LjU1NiwzNy40MzkyMTEyIEM0Ni44OTgsMzcuNDM5MjExMiA1MC45NjksMzUuNDE3MDIwNSA1MSwzNC4wMDk4ODc3IEw1MSwzNC4wMDE4ODcgTDUxLjAwMiwzNC4wMDE4ODcgQzUxLjAwMiwzMy45OTg4ODY3IDUxLjAwMywzMy45OTU4ODY0IDUxLjAwMywzMy45OTI4ODYxIEM1MS4wMDMsMzIuNTg0NzUzMyA0Ni45MjcsMzAuNTQ2NTYxIDM5LjU1NiwzMC41NDY1NjEgQzMyLjk0NiwzMC41NDY1NjEgMjguOTk3LDMyLjI5ODcyNjMgMjguOTk3LDMzLjk5Mjg4NjEgTDI4Ljk5NywzMy45OTI4ODYxIFogTTUzLDM0LjAxNzg4ODUgTDUzLDQzLjc3MzgwODggTDUzLjAwMyw0My43NzM4MDg4IEM1My4wMDMsNDMuNzgyODA5NyA1Myw0My43ODk4MTA0IDUzLDQzLjc5ODgxMTIgTDUzLDUyLjY2NjY0NzggTDUzLjAwMyw1Mi42NjY2NDc4IEM1My4wMDMsNTIuNjc1NjQ4NiA1Myw1Mi42ODI2NDkzIDUzLDUyLjY5MTY1MDIgTDUzLDYxLjU1NTQ4NjQgQzUzLDY1LjI5NjgzOTMgNDYuMDMxLDY3IDM5LjU1Niw2NyBDMzEuOTI5LDY3IDI3LDY0Ljg2Mjc5ODQgMjcsNjEuNTU1NDg2NCBMMjcsNTIuNjk3NjUwNyBDMjcsNTIuNjg2NjQ5NyAyNi45OTcsNTIuNjc3NjQ4OCAyNi45OTcsNTIuNjY2NjQ3OCBMMjcsNTIuNjY2NjQ3OCBMMjcsNDMuODA0ODExOCBDMjcsNDMuNzk0ODEwOCAyNi45OTcsNDMuNzg0ODA5OSAyNi45OTcsNDMuNzczODA4OCBMMjcsNDMuNzczODA4OCBMMjcsMzQuMDIzODg5IEMyNywzNC4wMTI4ODggMjYuOTk3LDM0LjAwMzg4NzIgMjYuOTk3LDMzLjk5Mjg4NjEgQzI2Ljk5NywzMC42ODQ1NzQgMzEuOTI3LDI4LjU0NjM3MjMgMzkuNTU2LDI4LjU0NjM3MjMgQzQ2LjAzMiwyOC41NDYzNzIzIDUzLjAwMywzMC4yNTA1MzMxIDUzLjAwMywzMy45OTI4ODYxIEM1My4wMDMsMzQuMDAxODg3IDUzLDM0LjAwODg4NzYgNTMsMzQuMDE3ODg4NSBMNTMsMzQuMDE3ODg4NSBaIE02NywyMS4xMjA2NzE4IEM2Ny41NTMsMjEuMTIwNjcxOCA2OCwyMC42NzI2Mjk1IDY4LDIwLjEyMDU3NzQgTDY4LDE1LjAwMDA5NDMgQzY4LDE0LjQ0NzA0MjIgNjcuNTUzLDE0IDY3LDE0IEwxMywxNCBDMTIuNDQ3LDE0IDEyLDE0LjQ0NzA0MjIgMTIsMTUuMDAwMDk0MyBMMTIsMjAuMTIwNTc3NCBDMTIsMjAuNjcyNjI5NSAxMi40NDcsMjEuMTIwNjcxOCAxMywyMS4xMjA2NzE4IEMxNC4yMjEsMjEuMTIwNjcxOCAxNS4yMTQsMjIuMTA3NzY0OSAxNS4yMTQsMjMuMzIwODc5MyBDMTUuMjE0LDI0LjUzMzk5MzggMTQuMjIxLDI1LjUyMTA4NjkgMTMsMjUuNTIxMDg2OSBDMTIuNDQ3LDI1LjUyMTA4NjkgMTIsMjUuOTY5MTI5MiAxMiwyNi41MjExODEyIEwxMiw0Ny4wMDMxMTM1IEMxMiw0Ny41NTUxNjU2IDEyLjQ0Nyw0OC4wMDMyMDc4IDEzLDQ4LjAwMzIwNzggTDIzLDQ4LjAwMzIwNzggTDIzLDQ2LjAwMzAxOTIgTDE4LDQ2LjAwMzAxOTIgTDE4LDQzLjAwMjczNjEgTDIzLDQzLjAwMjczNjEgTDIzLDQxLjAwMjU0NzQgTDE3LDQxLjAwMjU0NzQgQzE2LjQ0Nyw0MS4wMDI1NDc0IDE2LDQxLjQ0OTU4OTYgMTYsNDIuMDAyNjQxOCBMMTYsNDYuMDAzMDE5MiBMMTQsNDYuMDAzMDE5MiBMMTQsMjcuNDAxMjY0MyBDMTUuODQzLDI2Ljk1MjIyMTkgMTcuMjE0LDI1LjI5MzA2NTQgMTcuMjE0LDIzLjMyMDg3OTMgQzE3LjIxNCwyMS4zNDc2OTMyIDE1Ljg0MywxOS42ODg1MzY3IDE0LDE5LjIzOTQ5NDMgTDE0LDE2LjAwMDE4ODcgTDY2LDE2LjAwMDE4ODcgTDY2LDE5LjIzOTQ5NDMgQzY0LjE1NywxOS42ODg1MzY3IDYyLjc4NiwyMS4zNDc2OTMyIDYyLjc4NiwyMy4zMjA4NzkzIEM2Mi43ODYsMjUuMjkzMDY1NCA2NC4xNTcsMjYuOTUyMjIxOSA2NiwyNy40MDEyNjQzIEw2Niw0Ni4wMDMwMTkyIEw2NCw0Ni4wMDMwMTkyIEw2NCw0Mi4wMDI2NDE4IEM2NCw0MS40NDk1ODk2IDYzLjU1Myw0MS4wMDI1NDc0IDYzLDQxLjAwMjU0NzQgTDU3LDQxLjAwMjU0NzQgTDU3LDQzLjAwMjczNjEgTDYyLDQzLjAwMjczNjEgTDYyLDQ2LjAwMzAxOTIgTDU3LDQ2LjAwMzAxOTIgTDU3LDQ4LjAwMzIwNzggTDY3LDQ4LjAwMzIwNzggQzY3LjU1Myw0OC4wMDMyMDc4IDY4LDQ3LjU1NTE2NTYgNjgsNDcuMDAzMTEzNSBMNjgsMjYuNTIxMTgxMiBDNjgsMjUuOTY5MTI5MiA2Ny41NTMsMjUuNTIxMDg2OSA2NywyNS41MjEwODY5IEM2NS43NzksMjUuNTIxMDg2OSA2NC43ODYsMjQuNTMzOTkzOCA2NC43ODYsMjMuMzIwODc5MyBDNjQuNzg2LDIyLjEwNzc2NDkgNjUuNzc5LDIxLjEyMDY3MTggNjcsMjEuMTIwNjcxOCBMNjcsMjEuMTIwNjcxOCBaIE0yOCwyOC4wMDEzMjA5IEwyOCwyMC4wMDA1NjYxIEMyOCwxOS40NDc1MTM5IDI3LjU1MywxOS4wMDA0NzE3IDI3LDE5LjAwMDQ3MTcgTDIxLDE5LjAwMDQ3MTcgQzIwLjQ0NywxOS4wMDA0NzE3IDIwLDE5LjQ0NzUxMzkgMjAsMjAuMDAwNTY2MSBMMjAsMzcuMDAyMTcgQzIwLDM3LjU1NDIyMjEgMjAuNDQ3LDM4LjAwMjI2NDQgMjEsMzguMDAyMjY0NCBMMjQsMzguMDAyMjY0NCBMMjQsMzYuMDAyMDc1NyBMMjIsMzYuMDAyMDc1NyBMMjIsMjEuMDAwNjYwNCBMMjYsMjEuMDAwNjYwNCBMMjYsMjguMDAxMzIwOSBMMjgsMjguMDAxMzIwOSBaIE01OCwzNi4wMDIwNzU3IEw1NywzNi4wMDIwNzU3IEw1NywzOC4wMDIyNjQ0IEw1OSwzOC4wMDIyNjQ0IEM1OS41NTMsMzguMDAyMjY0NCA2MCwzNy41NTQyMjIxIDYwLDM3LjAwMjE3IEw2MCwyMC4wMDA1NjYxIEM2MCwxOS40NDc1MTM5IDU5LjU1MywxOS4wMDA0NzE3IDU5LDE5LjAwMDQ3MTcgTDUzLDE5LjAwMDQ3MTcgQzUyLjQ0NywxOS4wMDA0NzE3IDUyLDE5LjQ0NzUxMzkgNTIsMjAuMDAwNTY2MSBMNTIsMjguMDAxMzIwOSBMNTQsMjguMDAxMzIwOSBMNTQsMjEuMDAwNjYwNCBMNTgsMjEuMDAwNjYwNCBMNTgsMzYuMDAyMDc1NyBaIE01MCwyNy4wMDEyMjY1IEw1MCwyMC4wMDA1NjYxIEM1MCwxOS40NDc1MTM5IDQ5LjU1MywxOS4wMDA0NzE3IDQ5LDE5LjAwMDQ3MTcgTDQyLDE5LjAwMDQ3MTcgQzQxLjQ0NywxOS4wMDA0NzE3IDQxLDE5LjQ0NzUxMzkgNDEsMjAuMDAwNTY2MSBMNDEsMjYuMDAxMTMyMiBMNDMsMjYuMDAxMTMyMiBMNDMsMjEuMDAwNjYwNCBMNDgsMjEuMDAwNjYwNCBMNDgsMjcuMDAxMjI2NSBMNTAsMjcuMDAxMjI2NSBaIE0zNywyNi4wMDExMzIyIEwzNywyMS4wMDA2NjA0IEwzMiwyMS4wMDA2NjA0IEwzMiwyNy4wMDEyMjY1IEwzMCwyNy4wMDEyMjY1IEwzMCwyMC4wMDA1NjYxIEMzMCwxOS40NDc1MTM5IDMwLjQ0NywxOS4wMDA0NzE3IDMxLDE5LjAwMDQ3MTcgTDM4LDE5LjAwMDQ3MTcgQzM4LjU1MywxOS4wMDA0NzE3IDM5LDE5LjQ0NzUxMzkgMzksMjAuMDAwNTY2MSBMMzksMjYuMDAxMTMyMiBMMzcsMjYuMDAxMTMyMiBaIiBpZD0iQW1hem9uLUVsYXN0aUNhY2hlX0ljb25fNjRfU3F1aWQiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4KICAgIDwvZz4KPC9zdmc+",
+ "layout": [
+ {
+ "h": 5,
+ "i": "00d78996-1ba9-42d9-b22b-5818fc3bde4c",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "203637d1-df44-4032-beae-1e0302d61c2a",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "6a56afd1-6205-4afe-90fe-86befc3fb55e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "af269a1c-95a3-46b3-8d3b-322c194450e2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "f9b0f03a-8d78-4c26-a037-daae69650eb6",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "18798789-b67a-4c90-8127-f6bb63f012b2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "b3cdeb88-6988-419c-9e94-4a6bccfdd467",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "3604137c-12fe-4205-b7fc-f10d6143583b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "5e69ac87-580f-4dc2-becd-943296e5cd1d",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 20
+ },
+ {
+ "h": 5,
+ "i": "e5c9ccb6-31de-4b80-8f4c-220ea2e874d0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 20
+ },
+ {
+ "h": 5,
+ "i": "dccdd9c3-3864-4aef-a98f-6fb0e30baf0c",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "79723065-b871-4c79-83eb-b32f025c7642",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "8eba8049-2af5-4998-b0e1-cbc2235f9b40",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 30
+ },
+ {
+ "h": 5,
+ "i": "47432f6e-e37c-416a-b517-b66931c9e907",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 30
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "ElastiCache Redis Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "50910278-a96b-4bae-a3b4-4c5b9e7cdefc": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "Cache Cluster",
+ "id": "50910278-a96b-4bae-a3b4-4c5b9e7cdefc",
+ "modificationUUID": "3903938d-b7aa-4cea-b0f3-bbd704374e31",
+ "multiSelect": true,
+ "name": "Cluster",
+ "order": 2,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'CacheClusterId') AS cluster FROM signoz_metrics.distributed_time_series_v4_1day WHERE metric_name = 'aws_ElastiCache_CPUUtilization_max' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} AND JSONExtractString(labels, 'cloud.region') IN {{.Region}} AND cluster != '' GROUP BY cluster",
+ "showALLOption": true,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "6357cfda-7432-4286-ae5c-fa665ba4ad13": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account Region",
+ "id": "6357cfda-7432-4286-ae5c-fa665ba4ad13",
+ "key": "6357cfda-7432-4286-ae5c-fa665ba4ad13",
+ "modificationUUID": "7934dec7-34c6-417e-bcf6-5d9685874f41",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 1,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.region') AS region FROM signoz_metrics.distributed_time_series_v4_1day WHERE metric_name = 'aws_ElastiCache_CPUUtilization_max' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} GROUP BY region",
+ "showALLOption": false,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "dbed9d28-86e7-4c79-9b05-931cc3697416": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Cloud Account ID",
+ "id": "dbed9d28-86e7-4c79-9b05-931cc3697416",
+ "key": "dbed9d28-86e7-4c79-9b05-931cc3697416",
+ "modificationUUID": "e50566ae-eabf-4ca0-8c84-f9026747d538",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.account.id') AS cloud.account.id FROM signoz_metrics.distributed_time_series_v4_1day WHERE metric_name = 'aws_ElastiCache_CPUUtilization_max' GROUP BY cloud.account.id",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "b3cdeb88-6988-419c-9e94-4a6bccfdd467",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_DatabaseMemoryUsagePercentage_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_DatabaseMemoryUsagePercentage_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "1de28cd7",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "a2e662bc",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "b7391c4e",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "4e4a59d3-5255-4540-82e1-1892ffc0d444",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Database Memory Usage Percentage",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "18798789-b67a-4c90-8127-f6bb63f012b2",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_DatabaseCapacityUsagePercentage_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_DatabaseCapacityUsagePercentage_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "42feb786",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "0c3a5e7a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "de00d7b3",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "3199dc90-ba5d-451a-9430-2d4d0ebf37bc",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Database Capacity Usage Percentage",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "af269a1c-95a3-46b3-8d3b-322c194450e2",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_CacheHitRate_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_CacheHitRate_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6e9c7a26",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "7087d8df",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "26bd4c51",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e12cd857-4cec-4328-9155-5e4f9c00fc43",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Cache Hit Rate",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "f9b0f03a-8d78-4c26-a037-daae69650eb6",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_MemoryFragmentationRatio_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_MemoryFragmentationRatio_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "21a13195",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "63918715",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "647e4dbe",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "d7ec3399-edbf-4fbc-8cf6-e7e349fdbab5",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Memory Fragmentation Ratio",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "dccdd9c3-3864-4aef-a98f-6fb0e30baf0c",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_SwapUsage_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_SwapUsage_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "8c18e738",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "72e562a1",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "26891e8d",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "d0e5f558-3d07-4512-8611-243c4e86e84c",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Swap Usage",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "3604137c-12fe-4205-b7fc-f10d6143583b",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_FreeableMemory_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_FreeableMemory_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "0820e027",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "c6612aef",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "b863daa8",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "4263a59a-367b-404e-ac59-48002f3123e6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Freeable Memory",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "5e69ac87-580f-4dc2-becd-943296e5cd1d",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_NetworkBytesIn_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_NetworkBytesIn_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "314b2895",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "05806d0e",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "edfe2e2c",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0a5800e1-f341-4880-b993-e5a7f1068ab0",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network Bytes In",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "e5c9ccb6-31de-4b80-8f4c-220ea2e874d0",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_NetworkBytesOut_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_NetworkBytesOut_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f2089c33",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "088c9b4a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "1a86c392",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "c5ab1812-a9ec-4c8a-8b5b-49d5a43bf621",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network Bytes Out",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "6a56afd1-6205-4afe-90fe-86befc3fb55e",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_CurrConnections_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_CurrConnections_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5ebba9ac",
+ "key": {
+ "dataType": "",
+ "isColumn": false,
+ "key": "CacheClusterId",
+ "type": ""
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "10a254a8",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "310ce219",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "5796d31c-fd59-4d8b-b6ff-5f9db5a2a4bd",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Current Connections Maximum",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "8eba8049-2af5-4998-b0e1-cbc2235f9b40",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_ReplicationLag_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_ReplicationLag_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "b5ed26b7",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "a3ab9c6c",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "cfd6d4ee",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "2f6baca9-1700-4dcf-8875-3c45719f9ff7",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Replication Lag",
+ "yAxisUnit": "s"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "79723065-b871-4c79-83eb-b32f025c7642",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_Evictions_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_Evictions_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "e591ace7",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "0e7a0149",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "1440550c",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "aaa23f24-6fbf-439f-92a9-09bdde4ba8fc",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Evictions",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "00d78996-1ba9-42d9-b22b-5818fc3bde4c",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_CPUUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_CPUUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "43ef42eb",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "ce680e7d",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "4cc11182",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "eb5429dc-f591-4907-8394-ed3918bbe561",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPU Utilization",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "203637d1-df44-4032-beae-1e0302d61c2a",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_EngineCPUUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_EngineCPUUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "87b3e146",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "b0f9df50",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "07a5a0d1",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "ba5afd9b-eb99-46bc-83f3-7c2f2feabf19",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Engine CPU Utilization",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "47432f6e-e37c-416a-b517-b66931c9e907",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_ElastiCache_CurrConnections_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_ElastiCache_CurrConnections_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6764e117",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "4764b9eb",
+ "key": {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Cluster"
+ ]
+ },
+ {
+ "id": "a1c90d55",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "CacheClusterId--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "CacheClusterId",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{CacheClusterId}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "018e439e-7c3c-4f6d-afe1-fd363e0f9a1d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Current Connections",
+ "yAxisUnit": "none"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/lambda/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/lambda/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..85437c6bf4
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/lambda/assets/dashboards/overview_dot.json
@@ -0,0 +1,1547 @@
+{
+ "description": "Overview of AWS Lambda functions",
+ "image": "data:image/svg+xml,%3Csvg%20width%3D%22800px%22%20height%3D%22800px%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22%23FA7E14%22%20d%3D%22M7.983%208.37c-.053.073-.098.133-.141.194L5.775%2011.5c-.64.91-1.282%201.82-1.924%202.73a.128.128%200%2001-.092.051c-.906-.007-1.813-.017-2.719-.028-.01%200-.02-.003-.04-.006a.455.455%200%2001.025-.053%2013977.496%2013977.496%200%20015.446-8.146c.092-.138.188-.273.275-.413a.165.165%200%2000.018-.124c-.167-.515-.338-1.03-.508-1.543-.073-.22-.15-.44-.218-.66-.022-.072-.059-.094-.134-.093-.57.002-1.136.001-1.704.001-.108%200-.108%200-.108-.103%200-.674%200-1.347-.002-2.021%200-.075.026-.092.099-.092%201.143.002%202.286.002%203.43%200a.113.113%200%2001.076.017.107.107%200%2001.045.061%2018266.184%2018266.184%200%20003.92%209.51c.218.53.438%201.059.654%201.59.026.064.053.076.12.056.6-.178%201.2-.352%201.8-.531.075-.023.102-.008.126.064.204.62.412%201.239.62%201.858l.02.073c-.043.015-.083.032-.124.043l-4.085%201.25c-.065.02-.085%200-.106-.054l-1.25-3.048-1.226-2.984-.183-.449c-.01-.026-.023-.048-.043-.087z%22%2F%3E%3C%2Fsvg%3E",
+ "layout": [
+ {
+ "h": 6,
+ "i": "877bb5c8-331c-492f-b666-2054c2ae39bd",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "b038520d-0756-4e46-a915-12a2f19a0254",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "2516c785-b025-49b3-aeb4-a4735ccb2709",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "6354ea62-e82b-4323-a33d-eef92519e843",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "853d3a92-b396-4064-8762-18d7487989e0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 12
+ },
+ {
+ "h": 6,
+ "i": "ae6d7c81-d921-4d4c-95ec-6b42d900ea45",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 12
+ },
+ {
+ "h": 6,
+ "i": "4119a1e5-32a8-4859-96e9-a5451114782b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 18
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "AWS Lambda Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "5c57a94c-e7a1-4c20-83a3-3a779b9da48e": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account",
+ "id": "5c57a94c-e7a1-4c20-83a3-3a779b9da48e",
+ "key": "5c57a94c-e7a1-4c20-83a3-3a779b9da48e",
+ "modificationUUID": "7113f462-0b71-459e-8226-f6292350b34a",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'cloud.account.id') as `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_Lambda_Invocations_sum'\nGROUP BY `cloud.account.id`\n\n",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "8e6124f0-077e-4a45-8a34-c5d5ce1c26c7": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Region",
+ "id": "8e6124f0-077e-4a45-8a34-c5d5ce1c26c7",
+ "modificationUUID": "d090f070-1d58-4f55-87d2-91778e3fde00",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'cloud.region') as `cloud.region`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_Lambda_Invocations_sum'\n and JSONExtractString(labels, 'cloud.account.id') IN {{.Account}}\nGROUP BY `cloud.region`\n",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of times that your function code is invoked, including successful invocations and invocations that result in a function error. Invocations aren't recorded if the invocation request is throttled or otherwise results in an invocation error. The value of Invocations equals the number of requests billed.\n\nSee more at https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html",
+ "fillSpans": false,
+ "id": "877bb5c8-331c-492f-b666-2054c2ae39bd",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Lambda_Invocations_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Lambda_Invocations_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "49d33567",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "b9dfa1c9",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "86defeb5",
+ "key": {
+ "dataType": "",
+ "isColumn": false,
+ "key": "FunctionName",
+ "type": ""
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "f89a10c4",
+ "key": {
+ "dataType": "",
+ "isColumn": false,
+ "key": "Resource",
+ "type": ""
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{FunctionName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a0e81905-5968-4dbc-b601-29bd491dec11",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "{\"aws_Lambda_Invocations_sum\",\"cloud.region\"=\"us-east-2\"}"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Invocations",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The amount of time that your function code spends processing an event. The billed duration for an invocation is the value of Duration rounded up to the nearest millisecond. Duration does not include cold start time.\n\nSee more at https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html",
+ "fillSpans": false,
+ "id": "b038520d-0756-4e46-a915-12a2f19a0254",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Lambda_Duration_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Lambda_Duration_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "af05252d",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "983efea5",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "88eb3092",
+ "key": {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "a35c6406",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{FunctionName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "cfde56b0-9052-4f97-aa31-63b03653f73e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "{\"aws_Lambda_Invocations_sum\", \"cloud.region\"=\"us-east-2\"}"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Max Duration",
+ "yAxisUnit": "ms"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of invocations that result in a function error. Function errors include exceptions that your code throws and exceptions that the Lambda runtime throws. The runtime returns errors for issues such as timeouts and configuration errors. To calculate the error rate, divide the value of Errors by the value of Invocations. Note that the timestamp on an error metric reflects when the function was invoked, not when the error occurred.\n\nSee more at https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html",
+ "fillSpans": false,
+ "id": "2516c785-b025-49b3-aeb4-a4735ccb2709",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Lambda_Errors_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Lambda_Errors_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "c67262c9",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "c5ccbbf4",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "c1b278d1",
+ "key": {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "a45d80e1",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{FunctionName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "edd02708-38ea-48ec-856e-25dade25acae",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "{\"aws_Lambda_Invocations_sum\", \"cloud.region\"=\"us-east-2\"}"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Errors",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of invocation requests that are throttled. When all function instances are processing requests and no concurrency is available to scale up, Lambda rejects additional requests with a TooManyRequestsException error. Throttled requests and other invocation errors don't count as either Invocations or Errors.\n\nSee more at https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html",
+ "fillSpans": false,
+ "id": "6354ea62-e82b-4323-a33d-eef92519e843",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Lambda_Throttles_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Lambda_Throttles_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6c956b7d",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "5fef840b",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "6f892a9a",
+ "key": {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "ce91320c",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{FunctionName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "d37ca92b-1ffa-4638-95fb-eece9fd4b1d8",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "{\"aws_Lambda_Invocations_sum\",\"cloud.region\"=\"us-east-2\"}"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Throttles",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of events that Lambda successfully queues for processing. This metric provides insight into the number of events that a Lambda function receives. Monitor this metric and set alarms for thresholds to check for issues. For example, to detect an undesirable number of events sent to Lambda, and to quickly diagnose issues resulting from incorrect trigger or function configurations. Mismatches between AsyncEventsReceived and Invocations can indicate a disparity in processing, events being dropped, or a potential queue backlog.\n\nSee more at https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html",
+ "fillSpans": false,
+ "id": "853d3a92-b396-4064-8762-18d7487989e0",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Lambda_AsyncEventsReceived_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Lambda_AsyncEventsReceived_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f4c6246b",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "5b7a75a1",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "4e1ba051",
+ "key": {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "5848f496",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{FunctionName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "34a8224d-d977-46d4-bb10-c0064fcbdfb0",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "{\"aws_Lambda_Invocations_sum\",\"cloud.region=\"us-east-2\"}"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Async events received",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The time between when Lambda successfully queues the event and when the function is invoked. The value of this metric increases when events are being retried due to invocation failures or throttling. Monitor this metric and set alarms for thresholds on different statistics for when a queue buildup occurs. To troubleshoot an increase in this metric, look at the Errors metric to identify function errors and the Throttles metric to identify concurrency issues.\n\nSee more at https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html",
+ "fillSpans": false,
+ "id": "ae6d7c81-d921-4d4c-95ec-6b42d900ea45",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Lambda_AsyncEventAge_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Lambda_AsyncEventAge_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "1aee3626",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "11631fda",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "c5ea0a17",
+ "key": {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "1952b27e",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{FunctionName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "6d779378-7013-449e-9eb2-ef85649fa790",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "{\"aws_Lambda_Invocations_sum\",\"cloud.region=\"us-east-2\"}"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Max Async Event Age",
+ "yAxisUnit": "ms"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The number of events that are dropped without successfully executing the function. If you configure a dead-letter queue (DLQ) or OnFailure destination, then events are sent there before they're dropped. Events are dropped for various reasons. For example, events can exceed the maximum event age or exhaust the maximum retry attempts, or reserved concurrency might be set to 0. To troubleshoot why events are dropped, look at the Errors metric to identify function errors and the Throttles metric to identify concurrency issues.\n\nSee more at https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics-types.html",
+ "fillSpans": false,
+ "id": "4119a1e5-32a8-4859-96e9-a5451114782b",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Lambda_AsyncEventsDropped_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Lambda_AsyncEventsDropped_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a8c65389",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "2ab205c8",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "22d3c9b6",
+ "key": {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "1e7060a6",
+ "key": {
+ "dataType": "string",
+ "id": "Resource--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Resource",
+ "type": "tag"
+ },
+ "op": "nexists",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "FunctionName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "FunctionName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{FunctionName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "7866783d-942a-4d92-b390-6ddbcb717bad",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "{\"aws_Lambda_Invocations_sum\",\"cloud.region\"=\"us-east-2\"}"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Async events dropped",
+ "yAxisUnit": "none"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/msk/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/msk/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..8e847b5bee
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/msk/assets/dashboards/overview_dot.json
@@ -0,0 +1,1189 @@
+{
+ "description": "Overview Dashboard for Amazon MSK",
+ "image": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODBweCIgaGVpZ2h0PSI4MHB4IiB2aWV3Qm94PSIwIDAgODAgODAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDY0ICg5MzUzNykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+CiAgICA8dGl0bGU+SWNvbi1BcmNoaXRlY3R1cmUvNjQvQXJjaF9BbWF6b24tTWFuYWdlZC1TdHJlYW1pbmctZm9yLUthZmthXzY0PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjEwMCUiIHgyPSIxMDAlIiB5Mj0iMCUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzREMjdBOCIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjQTE2NkZGIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGcgaWQ9Ikljb24tQXJjaGl0ZWN0dXJlLzY0L0FyY2hfQW1hem9uLU1hbmFnZWQtU3RyZWFtaW5nLWZvci1LYWZrYV82NCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Ikljb24tQXJjaGl0ZWN0dXJlLUJHLzY0L0FuYWx5dGljcyIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSI+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUiIHg9IjAiIHk9IjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCI+PC9yZWN0PgogICAgICAgIDwvZz4KICAgICAgICA8cGF0aCBkPSJNMzYuMDA4MTM3MywzNi45NzcwODg4IEwzNi4wMDgxMzczLDI3Ljk4NjQ2MTYgTDM4LjAwNDA2ODYsMjcuOTg2NDYxNiBMMzguMDA0MDY4NiwzMS45ODIyOTU5IEw0MC42OTc1NzgsMjcuOTg2NDYxNiBMNDIuOTA3MDc0LDI3Ljk4NjQ2MTYgTDM5Ljc4NTQzNzQsMzIuMTkwMDc5MyBMNDMuMTY0NTQ5MiwzNi45NzcwODg4IEw0MC43OTczNzQ2LDM2Ljk3NzA4ODggTDM4LjAwNDA2ODYsMzIuNjMxNjE5IEwzOC4wMDQwNjg2LDM2Ljk3NzA4ODggTDM2LjAwODEzNzMsMzYuOTc3MDg4OCBaIE02Niw0OS4xMTc0MzI1IEw2NS4zMzEzNjMsNDkuNjk1ODI5NSBDNjMuOTg0MTA5Myw1MC44NzU1OTk2IDYyLjE3MTgwMzYsNTEuNDY1OTg0MSA2MC4zNTc1MDIsNTEuNDY1OTg0MSBDNTguNTQzMjAwNCw1MS40NjU5ODQxIDU2LjcyNzkwMDgsNTAuODc1NTk5NiA1NS4zNzg2NTEyLDQ5LjY5MjgzMjYgTDU0LjA0NTM2OTEsNDguNTM4MDM2NSBDNTIuMDg5MzU2Myw0Ni44MjM4MjM2IDQ4LjY2NTMzNiw0Ni44MjM4MjM2IDQ2LjcxMzMxNTIsNDguNTM0MDQwNiBMNDUuMzcyMDQ5Myw0OS42OTU4Mjk1IEM0Mi42Nzg1Mzk5LDUyLjA1NjM2ODYgMzguMTE2ODM4OCw1Mi4wNTgzNjY1IDM1LjQxOTMzNzUsNDkuNjkyODMyNiBMMzQuMDg2MDU1Myw0OC41MzgwMzY1IEMzMi4xMzAwNDI2LDQ2LjgyMzgyMzYgMjguNzA2MDIyMyw0Ni44MjM4MjM2IDI2Ljc1NDAwMTUsNDguNTM0MDQwNiBMMjUuNDEyNzM1Niw0OS42OTU4Mjk1IEMyMi43MTkyMjYyLDUyLjA1NjM2ODYgMTguMTU3NTI1LDUyLjA1ODM2NjUgMTUuNDYwMDIzOCw0OS42OTI4MzI2IEwxNC43OTUzNzg3LDQ5LjExNzQzMjUgTDE2LjEwMTcxNTcsNDcuNjA2MDA4MSBMMTYuNzcwMzUyNyw0OC4xODU0MDQxIEMxOC43MjczNjM1LDQ5Ljg5OTYxNyAyMi4xNTEzODM3LDQ5Ljg5OTYxNyAyNC4xMDI0MDY2LDQ4LjE4OTM5OTkgTDI1LjQ0MzY3MjUsNDcuMDI2NjEyMSBDMjguMTM3MTgxOSw0NC42NjcwNzIgMzIuNjk4ODgzLDQ0LjY2NzA3MiAzNS4zOTYzODQzLDQ3LjAzMDYwOCBMMzYuNzI5NjY2NCw0OC4xODU0MDQxIEMzOC42ODY2NzcyLDQ5Ljg5OTYxNyA0Mi4xMTA2OTc0LDQ5Ljg5OTYxNyA0NC4wNjE3MjAzLDQ4LjE4OTM5OTkgTDQ1LjQwMjk4NjIsNDcuMDI2NjEyMSBDNDguMDk2NDk1Niw0NC42NjcwNzIgNTIuNjU4MTk2OCw0NC42NjcwNzIgNTUuMzU1Njk4LDQ3LjAzMDYwOCBMNTYuNjg4OTgwMiw0OC4xODU0MDQxIEM1OC42NDQ5OTI5LDQ5Ljg5OTYxNyA2Mi4wNjkwMTMyLDQ5Ljg5OTYxNyA2NC4wMjEwMzQsNDguMTg5Mzk5OSBMNjQuNjkzNjYyOSw0Ny42MDYwMDgxIEw2Niw0OS4xMTc0MzI1IFogTTYzLjg5ODI4NDMsNjEuMTM5ODk5IEw2NS4yMDQ2MjEzLDYyLjY1MDMyNDQgTDY0LjUzNTk4NDMsNjMuMjI5NzIwMyBDNjMuMTg5NzI4Niw2NC40MDk0OTA0IDYxLjM3NzQyMjksNjQuOTk4ODc2IDU5LjU2NDExOTMsNjQuOTk4ODc2IEM1Ny43NDg4MTk3LDY0Ljk5ODg3NiA1NS45MzM1MjAxLDY0LjQwODQ5MTUgNTQuNTgzMjcyNiw2My4yMjU3MjQ1IEw1My4yNDk5OTA0LDYyLjA3MDkyODQgQzUxLjI5Mzk3NzcsNjAuMzU4NzEzNCA0Ny44Njk5NTc0LDYwLjM1ODcxMzQgNDUuOTE3OTM2NSw2Mi4wNjY5MzI2IEw0NC41NzY2NzA2LDYzLjIyOTcyMDMgQzQxLjg4NTE1NzIsNjUuNTkwMjU5NSAzNy4zMjM0NTYsNjUuNTkxMjU4NCAzNC42MjM5NTg5LDYzLjIyNTcyNDUgTDMzLjI5MDY3NjcsNjIuMDcwOTI4NCBDMzEuMzM1NjYxOSw2MC4zNTg3MTM0IDI3LjkxMTY0MTcsNjAuMzU4NzEzNCAyNS45NTg2MjI4LDYyLjA2NjkzMjYgTDI0LjYxNzM1NjksNjMuMjI5NzIwMyBDMjEuOTI0ODQ1NSw2NS41OTAyNTk1IDE3LjM2MzE0NDQsNjUuNTkxMjU4NCAxNC42NjQ2NDUxLDYzLjIyNTcyNDUgTDE0LDYyLjY1MDMyNDQgTDE1LjMwNjMzNzEsNjEuMTM5ODk5IEwxNS45NzQ5NzQxLDYxLjcxOTI5NSBDMTcuOTMxOTg0OCw2My40MzE1MSAyMS4zNTYwMDUxLDYzLjQzMjUwODkgMjMuMzA3MDI4LDYxLjcyMjI5MTggTDI0LjY0ODI5MzksNjAuNTYwNTAzIEMyNy4zNDI4MDEyLDU4LjIwMDk2MjggMzEuOTAyNTA2NCw1OC4xOTk5NjM5IDM0LjYwMTAwNTYsNjAuNTYzNDk5OSBMMzUuOTM0Mjg3OCw2MS43MTkyOTUgQzM3Ljg5MTI5ODUsNjMuNDMxNTEgNDEuMzE1MzE4OCw2My40MzI1MDg5IDQzLjI2NjM0MTcsNjEuNzIyMjkxOCBMNDQuNjA3NjA3Niw2MC41NjA1MDMgQzQ3LjMwMjExNDksNTguMjAwOTYyOCA1MS44NjE4MjAxLDU4LjE5OTk2MzkgNTQuNTYwMzE5Myw2MC41NjM0OTk5IEw1NS44OTM2MDE1LDYxLjcxOTI5NSBDNTcuODUwNjEyMiw2My40MzE1MSA2MS4yNzQ2MzI1LDYzLjQzMjUwODkgNjMuMjI1NjU1NCw2MS43MjIyOTE4IEw2My44OTgyODQzLDYxLjEzOTg5OSBaIE02My44OTgyODQzLDU0LjgwNjUwMTYgTDY1LjIwNDYyMTMsNTYuMzE1OTI4IEw2NC41MzU5ODQzLDU2Ljg5NTMyNCBDNjEuODQzNDcyOSw1OS4yNTY4NjIxIDU3LjI4MTc3MTgsNTkuMjU3ODYxIDU0LjU4MzI3MjYsNTYuODkyMzI3MSBMNTMuMjQ5OTkwNCw1NS43Mzc1MzEgQzUxLjI5Mzk3NzcsNTQuMDIzMzE4MSA0Ny44Njk5NTc0LDU0LjAyNDMxNyA0NS45MTc5MzY1LDU1LjczMzUzNTEgTDQ0LjU3NjY3MDYsNTYuODk2MzIyOSBDNDMuMjMwNDE0OSw1OC4wNzYwOTMgNDEuNDE3MTExMyw1OC42NjU0Nzg2IDM5LjYwNDgwNTYsNTguNjY1NDc4NiBDMzcuNzg5NTA2LDU4LjY2NTQ3ODYgMzUuOTc0MjA2NCw1OC4wNzUwOTQxIDM0LjYyMzk1ODksNTYuODkyMzI3MSBMMzMuMjkwNjc2Nyw1NS43Mzc1MzEgQzMxLjMzNTY2MTksNTQuMDIzMzE4MSAyNy45MTE2NDE3LDU0LjAyNDMxNyAyNS45NTg2MjI4LDU1LjczMzUzNTEgTDI0LjYxNzM1NjksNTYuODk2MzIyOSBDMjEuOTI1ODQzNSw1OS4yNTY4NjIxIDE3LjM2NDE0MjMsNTkuMjU2ODYyMSAxNC42NjQ2NDUxLDU2Ljg5MjMyNzEgTDE0LDU2LjMxNTkyOCBMMTUuMzA2MzM3MSw1NC44MDY1MDE2IEwxNS45NzQ5NzQxLDU1LjM4NTg5NzYgQzE3LjkzMTk4NDgsNTcuMTAwMTEwNSAyMS4zNTYwMDUxLDU3LjA5OTExMTUgMjMuMzA3MDI4LDU1LjM4ODg5NDQgTDI0LjY0ODI5MzksNTQuMjI3MTA1NiBDMjcuMzQyODAxMiw1MS44Njc1NjU0IDMxLjkwNDUwMjQsNTEuODY1NTY3NSAzNC42MDEwMDU2LDU0LjIzMDEwMjUgTDM1LjkzNDI4NzgsNTUuMzg0ODk4NiBDMzcuODkxMjk4NSw1Ny4xMDAxMTA1IDQxLjMxNTMxODgsNTcuMDk5MTExNSA0My4yNjYzNDE3LDU1LjM4ODg5NDQgTDQ0LjYwNzYwNzYsNTQuMjI3MTA1NiBDNDcuMzAyMTE0OSw1MS44Njc1NjU0IDUxLjg2MzgxNjEsNTEuODY1NTY3NSA1NC41NjAzMTkzLDU0LjIzMDEwMjUgTDU1Ljg5MzYwMTUsNTUuMzg0ODk4NiBDNTcuODUwNjEyMiw1Ny4xMDAxMTA1IDYxLjI3NDYzMjUsNTcuMDk5MTExNSA2My4yMjU2NTU0LDU1LjM4ODg5NDQgTDYzLjg5ODI4NDMsNTQuODA2NTAxNiBaIE0yNC4wMzI1NDksMzcuOTc2MDQ3NCBDMjUuMTMzMzA1MiwzNy45NzYwNDc0IDI2LjAyODQ4MDQsMzguODcyMTEzMiAyNi4wMjg0ODA0LDM5Ljk3Mzk2NDYgQzI2LjAyODQ4MDQsNDEuMDc1ODE1OSAyNS4xMzMzMDUyLDQxLjk3MTg4MTcgMjQuMDMyNTQ5LDQxLjk3MTg4MTcgQzIyLjkzMTc5MjksNDEuOTcxODgxNyAyMi4wMzY2MTc3LDQxLjA3NTgxNTkgMjIuMDM2NjE3NywzOS45NzM5NjQ2IEMyMi4wMzY2MTc3LDM4Ljg3MjExMzIgMjIuOTMxNzkyOSwzNy45NzYwNDc0IDI0LjAzMjU0OSwzNy45NzYwNDc0IEwyNC4wMzI1NDksMzcuOTc2MDQ3NCBaIE0zOS4wMDIwMzQzLDE2Ljk5NzkxNzIgQzQwLjEwMjc5MDUsMTYuOTk3OTE3MiA0MC45OTc5NjU3LDE3Ljg5Mzk4MyA0MC45OTc5NjU3LDE4Ljk5NTgzNDMgQzQwLjk5Nzk2NTcsMjAuMDk3Njg1NiA0MC4xMDI3OTA1LDIwLjk5Mzc1MTUgMzkuMDAyMDM0MywyMC45OTM3NTE1IEMzNy45MDEyNzgyLDIwLjk5Mzc1MTUgMzcuMDA2MTAyOSwyMC4wOTc2ODU2IDM3LjAwNjEwMjksMTguOTk1ODM0MyBDMzcuMDA2MTAyOSwxNy44OTM5ODMgMzcuOTAxMjc4MiwxNi45OTc5MTcyIDM5LjAwMjAzNDMsMTYuOTk3OTE3MiBMMzkuMDAyMDM0MywxNi45OTc5MTcyIFogTTU1Ljk2NzQ1MSwzOS45NzM5NjQ2IEM1NS45Njc0NTEsNDEuMDc1ODE1OSA1NS4wNzIyNzU3LDQxLjk3MTg4MTcgNTMuOTcxNTE5Niw0MS45NzE4ODE3IEM1Mi44NzA3NjM0LDQxLjk3MTg4MTcgNTEuOTc1NTg4Miw0MS4wNzU4MTU5IDUxLjk3NTU4ODIsMzkuOTczOTY0NiBDNTEuOTc1NTg4MiwzOC44NzIxMTMyIDUyLjg3MDc2MzQsMzcuOTc2MDQ3NCA1My45NzE1MTk2LDM3Ljk3NjA0NzQgQzU1LjA3MjI3NTcsMzcuOTc2MDQ3NCA1NS45Njc0NTEsMzguODcyMTEzMiA1NS45Njc0NTEsMzkuOTczOTY0NiBMNTUuOTY3NDUxLDM5Ljk3Mzk2NDYgWiBNMzkuMDAyMDM0MywyMi45OTE2Njg3IEMzOS42NjY2Nzk1LDIyLjk5MTY2ODcgNDAuMjg1NDE4MiwyMi44MTI4NTUxIDQwLjgzNzI5MzIsMjIuNTIzMTU3MSBMNTEuMDA0NTY3NiwzNy4zMjY3MjQzIEM1MC41ODg0MTU5LDM3Ljc5MjIzOSA1MC4yODMwMzg0LDM4LjM1MjY1NDggNTAuMTIyMzY1OSwzOC45NzUwMDYgTDI3Ljg4MTcwMjcsMzguOTc1MDA2IEMyNy43MjEwMzAyLDM4LjM1MjY1NDggMjcuNDE1NjUyNywzNy43OTIyMzkgMjYuOTk5NTAxLDM3LjMyNjcyNDMgTDM3LjE2Njc3NTQsMjIuNTIzMTU3MSBDMzcuNzE4NjUwNCwyMi44MTI4NTUxIDM4LjMzNzM4OTIsMjIuOTkxNjY4NyAzOS4wMDIwMzQzLDIyLjk5MTY2ODcgTDM5LjAwMjAzNDMsMjIuOTkxNjY4NyBaIE0yNC4wMzI1NDksNDMuOTY5Nzk4OSBDMjUuODg2NzY5Myw0My45Njk3OTg5IDI3LjQzNjYxLDQyLjY5MTEzMTkgMjcuODgxNzAyNyw0MC45NzI5MjMxIEw1MC4xMjIzNjU5LDQwLjk3MjkyMzEgQzUwLjU2NzQ1ODYsNDIuNjkxMTMxOSA1Mi4xMTcyOTk0LDQzLjk2OTc5ODkgNTMuOTcxNTE5Niw0My45Njk3OTg5IEM1Ni4xNzMwMzE5LDQzLjk2OTc5ODkgNTcuOTYzMzgyMyw0Mi4xNzc2NjcyIDU3Ljk2MzM4MjMsMzkuOTczOTY0NiBDNTcuOTYzMzgyMywzNy43NzAyNjE5IDU2LjE3MzAzMTksMzUuOTc4MTMwMiA1My45NzE1MTk2LDM1Ljk3ODEzMDIgQzUzLjUxMTQ1NzQsMzUuOTc4MTMwMiA1My4wNzYzNDQ0LDM2LjA3MjAzMjMgNTIuNjYzMTg2NiwzNi4yMTU4ODI0IEw0Mi4zMzcyMzU2LDIxLjE4MDU1NjcgQzQyLjc1MDM5MzQsMjAuNTUyMjExOCA0Mi45OTM4OTcxLDE5LjgwMjk5MjkgNDIuOTkzODk3MSwxOC45OTU4MzQzIEM0Mi45OTM4OTcxLDE2Ljc5MjEzMTcgNDEuMjAzNTQ2NiwxNSAzOS4wMDIwMzQzLDE1IEMzNi44MDA1MjIsMTUgMzUuMDEwMTcxNiwxNi43OTIxMzE3IDM1LjAxMDE3MTYsMTguOTk1ODM0MyBDMzUuMDEwMTcxNiwxOS44MDI5OTI5IDM1LjI1MzY3NTIsMjAuNTUyMjExOCAzNS42NjY4MzMsMjEuMTgwNTU2NyBMMjUuMzQwODgyLDM2LjIxNTg4MjQgQzI0LjkyNzcyNDMsMzYuMDcyMDMyMyAyNC40OTI2MTEyLDM1Ljk3ODEzMDIgMjQuMDMyNTQ5LDM1Ljk3ODEzMDIgQzIxLjgzMTAzNjcsMzUuOTc4MTMwMiAyMC4wNDA2ODYzLDM3Ljc3MDI2MTkgMjAuMDQwNjg2MywzOS45NzM5NjQ2IEMyMC4wNDA2ODYzLDQyLjE3NzY2NzIgMjEuODMxMDM2Nyw0My45Njk3OTg5IDI0LjAzMjU0OSw0My45Njk3OTg5IEwyNC4wMzI1NDksNDMuOTY5Nzk4OSBaIiBpZD0iQW1hem9uLU1hbmFnZWQtU3RyZWFtaW5nLWZvci1LYWZrYS1JY29uXzY0X1NxdWlkIiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+CiAgICA8L2c+Cjwvc3ZnPg==",
+ "layout": [
+ {
+ "h": 6,
+ "i": "238ff900-c0e4-4e29-83e3-d6acfcc9c6e5",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "e201e9c4-7a52-4558-a5f9-10d8686a6890",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "fcf5c63c-5da6-4f96-9243-5f42980df049",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "601ec1b7-f614-4678-b445-7f6b8fec2e16",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "e2ab4538-bc01-4e96-b3e0-c7f73a2c972f",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 12
+ },
+ {
+ "h": 6,
+ "i": "f15ba73d-d85e-48ac-b478-e6911965e9e3",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 12
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "Overview of Amazon MSK",
+ "uploadedGrafana": false,
+ "variables": {
+ "627dec44-a04e-44c7-9dd4-b0fdaf4b5b62": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "Cloud Account ID of AWS",
+ "id": "627dec44-a04e-44c7-9dd4-b0fdaf4b5b62",
+ "key": "627dec44-a04e-44c7-9dd4-b0fdaf4b5b62",
+ "modificationUUID": "b23952ff-b081-468c-bf50-96a062383743",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.account.id') AS `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_Kafka_KafkaDataLogsDiskUsed_max' GROUP BY `cloud.account.id`\n",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "c69e90bd-adaa-4f75-9108-1c6e91a00fbc": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Region",
+ "id": "c69e90bd-adaa-4f75-9108-1c6e91a00fbc",
+ "modificationUUID": "07f23d13-c94e-452c-b917-04124f910942",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 0,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.region') AS region\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_Kafka_KafkaDataLogsDiskUsed_max' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} GROUP BY region\n",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "238ff900-c0e4-4e29-83e3-d6acfcc9c6e5",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Kafka_KafkaDataLogsDiskUsed_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Kafka_KafkaDataLogsDiskUsed_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "be8452fb",
+ "key": {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "8b658843",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "9cbc21ee",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "Cluster_Name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Cluster_Name",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Broker {{Broker_ID}} ({{Cluster_Name}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "caafc0b7-fc3c-472d-87cd-ae176e4d9602",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Disk usage by (Cluster, Broker)",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "e201e9c4-7a52-4558-a5f9-10d8686a6890",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Kafka_CpuUser_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Kafka_CpuUser_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "03054a63",
+ "key": {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "754c3c99",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "09ad3a79",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Cluster_Name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Cluster_Name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Broker {{Broker_ID}} ({{Cluster_Name}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "476bd12d-7454-41e9-89b3-27406083bbaa",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPU (User) usage by (Cluster, Broker)",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "fcf5c63c-5da6-4f96-9243-5f42980df049",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Kafka_CpuSystem_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Kafka_CpuSystem_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "1c4feb03",
+ "key": {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "3e5db1d7",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "9e9bf94c",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Cluster_Name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Cluster_Name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Broker {{Broker_ID}} ({{Cluster_Name}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "91132e98-9068-48cf-ad89-af9a4bcb5a40",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPU (System) usage by (Cluster, Broker)",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "601ec1b7-f614-4678-b445-7f6b8fec2e16",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Kafka_NetworkTxPackets_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Kafka_NetworkTxPackets_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "df3f9941",
+ "key": {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "2233f9a5",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "52bd69d4",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Cluster_Name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Cluster_Name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Broker {{Broker_ID}} ({{Cluster_Name}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "47d4e8b7-2ca3-412c-a48a-bfbd592b0709",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": " Network TX packets by (Cluster, Broker)",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "e2ab4538-bc01-4e96-b3e0-c7f73a2c972f",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Kafka_NetworkRxPackets_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Kafka_NetworkRxPackets_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a00425be",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "726d60d7",
+ "key": {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ },
+ "op": "exists",
+ "value": ""
+ },
+ {
+ "id": "02adea69",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "Broker_ID--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Broker_ID",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "Cluster_Name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Cluster_Name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Broker {{Broker_ID}} ({{Cluster_Name}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "1c6ec479-a7d2-4f8f-bb31-1bf2a6b6fc25",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network RX packets by (Cluster, Broker)",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "f15ba73d-d85e-48ac-b478-e6911965e9e3",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_Kafka_SumOffsetLag_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_Kafka_SumOffsetLag_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "0626eebd",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "b633d867",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "Cluster_Name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "Cluster_Name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "({{Cluster_Name}})",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "49e4cbd5-d4d1-40a4-8724-7d6580dee56e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Lag Offset by Cluster",
+ "yAxisUnit": "none"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/rds/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/rds/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..efd48de034
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/rds/assets/dashboards/overview_dot.json
@@ -0,0 +1,1945 @@
+{
+ "description": "Overview of RDS instances in a region",
+ "image": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODBweCIgaGVpZ2h0PSI4MHB4IiB2aWV3Qm94PSIwIDAgODAgODAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICA8dGl0bGU+SWNvbi1BcmNoaXRlY3R1cmUvNjQvQXJjaF9BbWF6b24tUkRTXzY0PC90aXRsZT4KICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCB4MT0iMCUiIHkxPSIxMDAlIiB4Mj0iMTAwJSIgeTI9IjAlIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyRTI3QUQiIG9mZnNldD0iMCUiPjwvc3RvcD4KICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzUyN0ZGRiIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8ZyBpZD0iSWNvbi1BcmNoaXRlY3R1cmUvNjQvQXJjaF9BbWF6b24tUkRTXzY0IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIKICAgIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICA8ZyBpZD0iSWNvbi1BcmNoaXRlY3R1cmUtQkcvNjQvRGF0YWJhc2UiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPgogICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlIiB4PSIwIiB5PSIwIiB3aWR0aD0iODAiIGhlaWdodD0iODAiPjwvcmVjdD4KICAgIDwvZz4KICAgIDxwYXRoCiAgICAgIGQ9Ik0xNS40MTQsMTQgTDI0LjcwNywyMy4yOTMgTDIzLjI5MywyNC43MDcgTDE0LDE1LjQxNCBMMTQsMjMgTDEyLDIzIEwxMiwxMyBDMTIsMTIuNDQ4IDEyLjQ0NywxMiAxMywxMiBMMjMsMTIgTDIzLDE0IEwxNS40MTQsMTQgWiBNNjgsMTMgTDY4LDIzIEw2NiwyMyBMNjYsMTUuNDE0IEw1Ni43MDcsMjQuNzA3IEw1NS4yOTMsMjMuMjkzIEw2NC41ODYsMTQgTDU3LDE0IEw1NywxMiBMNjcsMTIgQzY3LjU1MywxMiA2OCwxMi40NDggNjgsMTMgTDY4LDEzIFogTTY2LDU3IEw2OCw1NyBMNjgsNjcgQzY4LDY3LjU1MiA2Ny41NTMsNjggNjcsNjggTDU3LDY4IEw1Nyw2NiBMNjQuNTg2LDY2IEw1NS4yOTMsNTYuNzA3IEw1Ni43MDcsNTUuMjkzIEw2Niw2NC41ODYgTDY2LDU3IFogTTY1LjUsMzkuMjEzIEM2NS41LDM1Ljg5NCA2MS42NjgsMzIuNjE1IDU1LjI1LDMwLjQ0MiBMNTUuODkxLDI4LjU0OCBDNjMuMjY4LDMxLjA0NSA2Ny41LDM0LjkzMiA2Ny41LDM5LjIxMyBDNjcuNSw0My40OTUgNjMuMjY4LDQ3LjM4MyA1NS44OSw0OS44NzkgTDU1LjI0OSw0Ny45ODQgQzYxLjY2OCw0NS44MTIgNjUuNSw0Mi41MzQgNjUuNSwzOS4yMTMgTDY1LjUsMzkuMjEzIFogTTE0LjU1NiwzOS4yMTMgQzE0LjU1Niw0Mi4zOTMgMTguMTQzLDQ1LjU4NSAyNC4xNTIsNDcuNzUzIEwyMy40NzMsNDkuNjM0IEMxNi41MzUsNDcuMTMxIDEyLjU1Niw0My4zMzMgMTIuNTU2LDM5LjIxMyBDMTIuNTU2LDM1LjA5NCAxNi41MzUsMzEuMjk2IDIzLjQ3MywyOC43OTIgTDI0LjE1MiwzMC42NzMgQzE4LjE0MywzMi44NDIgMTQuNTU2LDM2LjAzNCAxNC41NTYsMzkuMjEzIEwxNC41NTYsMzkuMjEzIFogTTI0LjcwNyw1Ni43MDcgTDE1LjQxNCw2NiBMMjMsNjYgTDIzLDY4IEwxMyw2OCBDMTIuNDQ3LDY4IDEyLDY3LjU1MiAxMiw2NyBMMTIsNTcgTDE0LDU3IEwxNCw2NC41ODYgTDIzLjI5Myw1NS4yOTMgTDI0LjcwNyw1Ni43MDcgWiBNNDAsMzEuMjg2IEMzMi44NTQsMzEuMjg2IDI5LDI5LjQ0IDI5LDI4LjY4NiBDMjksMjcuOTMxIDMyLjg1NCwyNi4wODYgNDAsMjYuMDg2IEM0Ny4xNDUsMjYuMDg2IDUxLDI3LjkzMSA1MSwyOC42ODYgQzUxLDI5LjQ0IDQ3LjE0NSwzMS4yODYgNDAsMzEuMjg2IEw0MCwzMS4yODYgWiBNNDAuMDI5LDM5LjAzMSBDMzMuMTg3LDM5LjAzMSAyOSwzNy4xNjIgMjksMzYuMTQ1IEwyOSwzMS4yODQgQzMxLjQ2MywzMi42NDMgMzUuODMyLDMzLjI4NiA0MCwzMy4yODYgQzQ0LjE2OCwzMy4yODYgNDguNTM3LDMyLjY0MyA1MSwzMS4yODQgTDUxLDM2LjE0NSBDNTEsMzcuMTYzIDQ2LjgzNSwzOS4wMzEgNDAuMDI5LDM5LjAzMSBMNDAuMDI5LDM5LjAzMSBaIE00MC4wMjksNDYuNjY3IEMzMy4xODcsNDYuNjY3IDI5LDQ0Ljc5OCAyOSw0My43ODEgTDI5LDM4Ljg2MiBDMzEuNDMxLDQwLjI5MSAzNS43NDIsNDEuMDMxIDQwLjAyOSw0MS4wMzEgQzQ0LjI5Miw0MS4wMzEgNDguNTc4LDQwLjI5MiA1MSwzOC44NjcgTDUxLDQzLjc4MSBDNTEsNDQuNzk5IDQ2LjgzNSw0Ni42NjcgNDAuMDI5LDQ2LjY2NyBMNDAuMDI5LDQ2LjY2NyBaIE00MCw1My41MTggQzMyLjg4Myw1My41MTggMjksNTEuNjA1IDI5LDUwLjYyMiBMMjksNDYuNDk4IEMzMS40MzEsNDcuOTI3IDM1Ljc0Miw0OC42NjcgNDAuMDI5LDQ4LjY2NyBDNDQuMjkyLDQ4LjY2NyA0OC41NzgsNDcuOTI5IDUxLDQ2LjUwMyBMNTEsNTAuNjIyIEM1MSw1MS42MDUgNDcuMTE3LDUzLjUxOCA0MCw1My41MTggTDQwLDUzLjUxOCBaIE00MCwyNC4wODYgQzMzLjczOSwyNC4wODYgMjcsMjUuNTI1IDI3LDI4LjY4NiBMMjcsNTAuNjIyIEMyNyw1My44MzYgMzMuNTQsNTUuNTE4IDQwLDU1LjUxOCBDNDYuNDYsNTUuNTE4IDUzLDUzLjgzNiA1Myw1MC42MjIgTDUzLDI4LjY4NiBDNTMsMjUuNTI1IDQ2LjI2MSwyNC4wODYgNDAsMjQuMDg2IEw0MCwyNC4wODYgWiIKICAgICAgaWQ9IkFtYXpvbi1SRFNfSWNvbl82NF9TcXVpZCIgZmlsbD0iI0ZGRkZGRiI+PC9wYXRoPgogIDwvZz4KPC9zdmc+",
+ "layout": [
+ {
+ "h": 5,
+ "i": "45856010-5998-4762-99ef-ffa799bf8e6d",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "b533700b-71e8-4294-8f2a-db48a9c407b2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "d64bed38-c9c0-4fac-a30a-1d7e73b4ee55",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "b3c3fddc-5497-41e6-8f0e-e1802c9e43ae",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "e5f430cc-2b07-4844-8c7f-6543ea12875c",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "a9f22b15-c22d-4505-a5b4-6f5878500565",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "71652346-286f-44f2-9edc-aab33fe514ec",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "7f8d7340-eeb5-47cb-a2b1-be653275c2d0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 15
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "RDS Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "Account": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account",
+ "id": "d5e770d2-5ab7-4481-b677-189e8eca218c",
+ "key": "d5e770d2-5ab7-4481-b677-189e8eca218c",
+ "modificationUUID": "619393f3-4796-40ed-a4b1-8b98fd5ebc48",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'cloud.account.id') as `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_RDS_CPUUtilization_sum'\nGROUP BY `cloud.account.id`",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "Region": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Region",
+ "id": "10aede9a-ef01-42f3-9946-2260dec2a398",
+ "key": "10aede9a-ef01-42f3-9946-2260dec2a398",
+ "modificationUUID": "c810775c-052f-45dd-948b-77fc3cc979e9",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 1,
+ "queryValue": "SELECT JSONExtractString(labels, 'cloud.region') as `cloud.region`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_RDS_CPUUtilization_sum'\n and JSONExtractString(labels, 'cloud.account.id') IN {{.Account}}\nGROUP BY `cloud.region`",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "45856010-5998-4762-99ef-ffa799bf8e6d",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_CPUUtilization_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_CPUUtilization_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f8e72efc",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "4e68256a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "a5082e1b",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0970e1f2-18fe-45c3-9045-6a5c254f8fe3",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPU Utilization",
+ "yAxisUnit": "percent"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "The amount of available random access memory.\n\nFor MariaDB, MySQL, Oracle, and PostgreSQL DB instances, this metric reports the value of the MemAvailable field of /proc/meminfo.",
+ "fillSpans": false,
+ "id": "b533700b-71e8-4294-8f2a-db48a9c407b2",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_FreeableMemory_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_FreeableMemory_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "723ba84a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "f8227b55",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "3951e8ed",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "530a64c6-c4e2-416a-b172-a79fed4ab258",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Free Memory",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "d64bed38-c9c0-4fac-a30a-1d7e73b4ee55",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_DatabaseConnections_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_DatabaseConnections_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "31191f74",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "aa644bbf",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "e5b31a18",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "ade71dbc-c62b-487d-9bf5-a7fba2a73a86",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Database Connections",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "b3c3fddc-5497-41e6-8f0e-e1802c9e43ae",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_ReadLatency_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_ReadLatency_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "83f232af",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "2677873f",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "78eddd81",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}} - Reads",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_WriteLatency_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_WriteLatency_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "e2df7981",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "6daad748",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "28057159",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}} - Writes",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "3327c4aa-f47b-4019-8eed-1e0f68edc071",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Disk Read / Write Latency",
+ "yAxisUnit": "s"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "e5f430cc-2b07-4844-8c7f-6543ea12875c",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_ReadIOPS_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_ReadIOPS_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "17142c3d",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "27fcc87d",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "5510ad1d",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}} - Reads",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_WriteIOPS_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_WriteIOPS_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "a050e23a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "6df80990",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "72bc50d0",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}} - Writes",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e41982c2-d975-41c3-aca3-62259806c112",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Disk Read / Write IOPS",
+ "yAxisUnit": "cps"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "a9f22b15-c22d-4505-a5b4-6f5878500565",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_ReadThroughput_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_ReadThroughput_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a298d4bd",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "810c0586",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "fa40ae81",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}} - Reads",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_WriteThroughput_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_WriteThroughput_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "d46f3f53",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "4ec47a19",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "a0e648d6",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}} - Writes",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "314ca22f-c50f-4b5a-9ab0-285488f0f220",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Disk Read / Write Throughput",
+ "yAxisUnit": "binBps"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "71652346-286f-44f2-9edc-aab33fe514ec",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_DiskQueueDepth_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_DiskQueueDepth_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f64f0096",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "18ad7c1e",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "5d3f4963",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "f0c67967-a129-4e88-883f-01454c729864",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Disk Queue Depth",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "7f8d7340-eeb5-47cb-a2b1-be653275c2d0",
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_RDS_FreeStorageSpace_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_RDS_FreeStorageSpace_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7786e529",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "f27b4616",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "51ca6d55",
+ "key": {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ },
+ "op": "!=",
+ "value": ""
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "DBInstanceIdentifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "DBInstanceIdentifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{DBInstanceIdentifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e3f55e7f-9701-4145-a177-672d6d380f3b",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Free Storage Space",
+ "yAxisUnit": "bytes"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/sns/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/sns/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..d39f071df6
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/sns/assets/dashboards/overview_dot.json
@@ -0,0 +1,818 @@
+{
+ "description": "View key AWS SNS metrics with an out of the box dashboard.",
+ "image": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODBweCIgaGVpZ2h0PSI4MHB4IiB2aWV3Qm94PSIwIDAgODAgODAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDY0ICg5MzUzNykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+CiAgICA8dGl0bGU+SWNvbi1BcmNoaXRlY3R1cmUvNjQvQXJjaF9BV1MtU2ltcGxlLU5vdGlmaWNhdGlvbi1TZXJ2aWNlXzY0PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjEwMCUiIHgyPSIxMDAlIiB5Mj0iMCUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0IwMDg0RCIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkY0RjhCIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGcgaWQ9Ikljb24tQXJjaGl0ZWN0dXJlLzY0L0FyY2hfQVdTLVNpbXBsZS1Ob3RpZmljYXRpb24tU2VydmljZV82NCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Ikljb24tQXJjaGl0ZWN0dXJlLUJHLzY0L0FwcGxpY2F0aW9uLUludGVncmF0aW9uIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50LTEpIj4KICAgICAgICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIj48L3JlY3Q+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik0xNywzOCBDMTguMTAzLDM4IDE5LDM4Ljg5NyAxOSw0MCBDMTksNDEuMTAzIDE4LjEwMyw0MiAxNyw0MiBDMTUuODk3LDQyIDE1LDQxLjEwMyAxNSw0MCBDMTUsMzguODk3IDE1Ljg5NywzOCAxNywzOCBMMTcsMzggWiBNNDEsNjQgQzI5LjMxNCw2NCAxOS4yODksNTUuNDY2IDE3LjE5NCw0My45OCBDMTguOTY1LDQzLjg5NCAyMC40MjcsNDIuNjU5IDIwLjg1Nyw0MSBMMjcsNDEgTDI3LDM5IEwyMC44NTcsMzkgQzIwLjQyNywzNy4zNDIgMTguOTY2LDM2LjEwNyAxNy4xOTUsMzYuMDIgQzE5LjI4NSwyNC43MSAyOS41MTEsMTYgNDEsMTYgQzQ1LjMxMywxNiA0OS44MzIsMTcuNjIyIDU0LjQyOSwyMC44MjEgTDU1LjU3MSwxOS4xNzkgQzUwLjYzMywxNS43NDMgNDUuNzMsMTQgNDEsMTQgQzI4LjI3LDE0IDE2Ljk0OSwyMy44NjUgMTUuMDYzLDM2LjUyMSBDMTMuODM5LDM3LjIwNyAxMywzOC41IDEzLDQwIEMxMyw0MS41IDEzLjgzOSw0Mi43OTMgMTUuMDYzLDQzLjQ3OCBDMTYuOTcsNTYuMzQxIDI4LjA1Niw2NiA0MSw2NiBDNDYuNDA3LDY2IDUxLjk0Miw2NC4xNTcgNTYuNTg1LDYwLjgxMSBMNTUuNDE1LDU5LjE4OSBDNTEuMTEsNjIuMjkyIDQ1Ljk5MSw2NCA0MSw2NCBMNDEsNjQgWiBNMzAuMTAxLDM2LjQ0MiBDMzEuOTU1LDM2Ljg5NSAzNC4yNzUsMzcgMzYsMzcgQzM3LjY0MiwzNyAzOS44MjMsMzYuOTA1IDQxLjYyOSwzNi41MDYgTDM3LjEwNSw0NS41NTMgQzM3LjAzNiw0NS42OTEgMzcsNDUuODQ1IDM3LDQ2IEwzNyw1MC40NTMgQzM2LjE5OSw1MC45NjQgMzQuODMzLDUxLjgxMiAzNCw1MS45ODYgTDM0LDQ2IEMzNCw0NS44NjggMzMuOTc0LDQ1LjczNyAzMy45MjMsNDUuNjE1IEwzMC4xMDEsMzYuNDQyIFogTTM2LDMzIEM0MC4wMjUsMzMgNDIuMTc0LDMzLjYwNCA0Mi44NDEsMzQgQzQyLjE3NCwzNC4zOTYgNDAuMDI1LDM1IDM2LDM1IEMzMS45NzUsMzUgMjkuODI2LDM0LjM5NiAyOS4xNTksMzQgQzI5LjgyNiwzMy42MDQgMzEuOTc1LDMzIDM2LDMzIEwzNiwzMyBaIE0zMyw1NCBMMzQsNTQgQzM0LjA0Myw1NCAzNC4wODYsNTMuOTk3IDM0LjEyOCw1My45OTIgQzM1LjM1Miw1My44MzMgMzYuOTA5LDUyLjg4NyAzOC4yNzIsNTIuMDEzIEwzOC41MzUsNTEuODQ1IEMzOC44MjQsNTEuNjYxIDM5LDUxLjM0MiAzOSw1MSBMMzksNDYuMjM2IEw0NC41NTksMzUuMTIgQzQ0LjgzMywzNC44MDEgNDUsMzQuNDM0IDQ1LDM0IEM0NSwzMS4zOSAzOS4zNjEsMzEgMzYsMzEgQzMyLjYzOSwzMSAyNywzMS4zOSAyNywzNCBDMjcsMzQuMzY2IDI3LjEyLDM0LjY4NCAyNy4zMiwzNC45NjcgTDMyLDQ2LjIgTDMyLDUzIEMzMiw1My41NTIgMzIuNDQ3LDU0IDMzLDU0IEwzMyw1NCBaIE02Miw1MyBDNjMuMTAzLDUzIDY0LDUzLjg5NyA2NCw1NSBDNjQsNTYuMTAzIDYzLjEwMyw1NyA2Miw1NyBDNjAuODk3LDU3IDYwLDU2LjEwMyA2MCw1NSBDNjAsNTMuODk3IDYwLjg5Nyw1MyA2Miw1MyBMNjIsNTMgWiBNNjIsMjMgQzYzLjEwMywyMyA2NCwyMy44OTcgNjQsMjUgQzY0LDI2LjEwMyA2My4xMDMsMjcgNjIsMjcgQzYwLjg5NywyNyA2MCwyNi4xMDMgNjAsMjUgQzYwLDIzLjg5NyA2MC44OTcsMjMgNjIsMjMgTDYyLDIzIFogTTY0LDM4IEM2NS4xMDMsMzggNjYsMzguODk3IDY2LDQwIEM2Niw0MS4xMDMgNjUuMTAzLDQyIDY0LDQyIEM2Mi44OTcsNDIgNjIsNDEuMTAzIDYyLDQwIEM2MiwzOC44OTcgNjIuODk3LDM4IDY0LDM4IEw2NCwzOCBaIE01NCw0MSBMNjAuMTQzLDQxIEM2MC41ODksNDIuNzIgNjIuMTQyLDQ0IDY0LDQ0IEM2Ni4yMDYsNDQgNjgsNDIuMjA2IDY4LDQwIEM2OCwzNy43OTQgNjYuMjA2LDM2IDY0LDM2IEM2Mi4xNDIsMzYgNjAuNTg5LDM3LjI4IDYwLjE0MywzOSBMNTQsMzkgTDU0LDI2IEw1OC4xNDMsMjYgQzU4LjU4OSwyNy43MiA2MC4xNDIsMjkgNjIsMjkgQzY0LjIwNiwyOSA2NiwyNy4yMDYgNjYsMjUgQzY2LDIyLjc5NCA2NC4yMDYsMjEgNjIsMjEgQzYwLjE0MiwyMSA1OC41ODksMjIuMjggNTguMTQzLDI0IEw1MywyNCBDNTIuNDQ3LDI0IDUyLDI0LjQ0OCA1MiwyNSBMNTIsMzkgTDQ1LDM5IEw0NSw0MSBMNTIsNDEgTDUyLDU1IEM1Miw1NS41NTIgNTIuNDQ3LDU2IDUzLDU2IEw1OC4xNDMsNTYgQzU4LjU4OSw1Ny43MiA2MC4xNDIsNTkgNjIsNTkgQzY0LjIwNiw1OSA2Niw1Ny4yMDYgNjYsNTUgQzY2LDUyLjc5NCA2NC4yMDYsNTEgNjIsNTEgQzYwLjE0Miw1MSA1OC41ODksNTIuMjggNTguMTQzLDU0IEw1NCw1NCBMNTQsNDEgWiIgaWQ9IkFXUy1TaW1wbGUtTm90aWZpY2F0aW9uLVNlcnZpY2VfSWNvbl82NF9TcXVpZCIgZmlsbD0iI0ZGRkZGRiI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4=",
+ "layout": [
+ {
+ "h": 6,
+ "i": "4eb87f89-0213-4773-9b06-6aecc6701898",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "7a010b4e-ea7c-4a45-a9eb-93af650c45b4",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "2299d4e3-6c40-4bf2-a550-c7bb8a7acd38",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "16eec8b7-de1a-4039-b180-24c7a6704b6e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "SNS Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "51f4fa2b-89c7-47c2-9795-f32cffaab985": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account ID",
+ "id": "51f4fa2b-89c7-47c2-9795-f32cffaab985",
+ "key": "51f4fa2b-89c7-47c2-9795-f32cffaab985",
+ "modificationUUID": "b7a6b06b-fa1f-4fb8-b70e-6bd9b350f29e",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.account.id') AS `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_SNS_PublishSize_count' GROUP BY `cloud.account.id`",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "9faf0f4b-b245-4b3c-83a3-60cfa76dfeb0": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "Account Region",
+ "id": "9faf0f4b-b245-4b3c-83a3-60cfa76dfeb0",
+ "key": "9faf0f4b-b245-4b3c-83a3-60cfa76dfeb0",
+ "modificationUUID": "8428a5de-bfd1-4a69-9601-63e3041cd556",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 1,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.region') AS region\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_SNS_PublishSize_count' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} GROUP BY region",
+ "showALLOption": false,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "bfbdbcbe-a168-4d81-b108-36339e249116": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "SNS Topic Name",
+ "id": "bfbdbcbe-a168-4d81-b108-36339e249116",
+ "modificationUUID": "dfed7272-16dc-4eb6-99bf-7c82fc8e04f0",
+ "multiSelect": true,
+ "name": "Topic",
+ "order": 2,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'TopicName') AS topic\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_SNS_PublishSize_count' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} AND JSONExtractString(labels, 'cloud.region') IN {{.Region}}\nGROUP BY topic",
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "4eb87f89-0213-4773-9b06-6aecc6701898",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SNS_NumberOfMessagesPublished_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SNS_NumberOfMessagesPublished_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "8fd51b53",
+ "key": {
+ "dataType": "string",
+ "id": "TopicName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TopicName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Topic"
+ ]
+ },
+ {
+ "id": "b18187c3",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "eebe4578",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "TopicName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TopicName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{TopicName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9c67615a-55f7-42da-835c-86922f2ff8bb",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Number of Messages Published",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "7a010b4e-ea7c-4a45-a9eb-93af650c45b4",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SNS_PublishSize_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SNS_PublishSize_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "1aa0d1a9",
+ "key": {
+ "dataType": "string",
+ "id": "TopicName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TopicName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Topic"
+ ]
+ },
+ {
+ "id": "62255cff",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "17c7153e",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "TopicName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TopicName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{TopicName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a635a15b-dfe6-4617-a82e-29d93e27deaf",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Published Message Size",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "2299d4e3-6c40-4bf2-a550-c7bb8a7acd38",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SNS_NumberOfNotificationsDelivered_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SNS_NumberOfNotificationsDelivered_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "c96a4ac0",
+ "key": {
+ "dataType": "string",
+ "id": "TopicName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TopicName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Topic"
+ ]
+ },
+ {
+ "id": "8ca86829",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "8a444f66",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "TopicName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TopicName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{TopicName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0d2fc26c-9b21-4dfc-b631-64b7c8d3bd71",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Number of Notifications Delivered",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "16eec8b7-de1a-4039-b180-24c7a6704b6e",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SNS_NumberOfNotificationsFailed_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SNS_NumberOfNotificationsFailed_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6175f3d5",
+ "key": {
+ "dataType": "string",
+ "id": "TopicName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TopicName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Topic"
+ ]
+ },
+ {
+ "id": "e2084931",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "0b05209a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "TopicName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "TopicName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{TopicName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "526247af-6ac9-42ff-83e9-cce0e32a9e63",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Number of Notifications Failed",
+ "yAxisUnit": "none"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/cloudintegrations/services/definitions/aws/sqs/assets/dashboards/overview_dot.json b/pkg/query-service/app/cloudintegrations/services/definitions/aws/sqs/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..dea1a758cc
--- /dev/null
+++ b/pkg/query-service/app/cloudintegrations/services/definitions/aws/sqs/assets/dashboards/overview_dot.json
@@ -0,0 +1,1761 @@
+{
+ "description": "View SQS key Metrics them with an out of the box dashboard.",
+ "image":"data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20width%3D%2280px%22%20height%3D%2280px%22%20viewBox%3D%220%200%2080%2080%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3C!--%20Generator%3A%20Sketch%2064%20(93537)%20-%20https%3A%2F%2Fsketch.com%20--%3E%3Ctitle%3EIcon-Architecture%2F64%2FArch_AWS-Simple-Queue-Service_64%3C%2Ftitle%3E%3Cdesc%3ECreated%20with%20Sketch.%3C%2Fdesc%3E%3Cdefs%3E%3ClinearGradient%20x1%3D%220%25%22%20y1%3D%22100%25%22%20x2%3D%22100%25%22%20y2%3D%220%25%22%20id%3D%22linearGradient-1%22%3E%3Cstop%20stop-color%3D%22%23B0084D%22%20offset%3D%220%25%22%3E%3C%2Fstop%3E%3Cstop%20stop-color%3D%22%23FF4F8B%22%20offset%3D%22100%25%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cg%20id%3D%22Icon-Architecture%2F64%2FArch_AWS-Simple-Queue-Service_64%22%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20id%3D%22Icon-Architecture-BG%2F64%2FApplication-Integration%22%20fill%3D%22url(%23linearGradient-1)%22%3E%3Crect%20id%3D%22Rectangle%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2280%22%20height%3D%2280%22%3E%3C%2Frect%3E%3C%2Fg%3E%3Cpath%20d%3D%22M28.7169966%2C43.6876756%20L31.7189265%2C40.721826%20C31.9070474%2C40.5359011%2032.0131156%2C40.2833614%2032.0141233%2C40.019885%20C32.0151169%2C39.7564086%2031.9100493%2C39.5028747%2031.722929%2C39.3159556%20L28.7209992%2C36.3163014%20L27.3020871%2C37.7181948%20L28.5899149%2C39.0057494%20L24.0089701%2C39.0057494%20L24.0089701%2C40.9942506%20L28.6059252%2C40.9942506%20L27.3060896%2C42.2778282%20L28.7169966%2C43.6876756%20Z%20M51.627725%2C43.7781524%20L55.630298%2C40.793412%20C55.8804589%2C40.6054986%2056.0295547%2C40.3112004%2056.0295547%2C39.9990057%20C56.0295547%2C39.6858168%2055.8804589%2C39.3905244%2055.6292974%2C39.202611%20L51.6267243%2C36.2218476%20L50.4259524%2C37.8126486%20L52.0269816%2C39.0057494%20L48.0244085%2C39.0057494%20L48.0244085%2C40.9942506%20L52.025981%2C40.9942506%20L50.4249518%2C42.1873514%20L51.627725%2C43.7781524%20Z%20M35.2081695%2C40%20C35.2081695%2C42.1107941%2034.8429347%2C44.1012839%2034.160496%2C45.8332685%20C35.9606533%2C45.14127%2037.9909585%2C44.7952708%2040.0192624%2C44.7952708%20C42.0475663%2C44.7952708%2044.0778715%2C45.14127%2045.8770281%2C45.8332685%20C45.19559%2C44.1012839%2044.8303552%2C42.1107941%2044.8303552%2C40%20C44.8303552%2C37.8892059%2045.19559%2C35.8997104%2045.8770281%2C34.1667315%20C42.2777142%2C35.5497341%2037.7608105%2C35.5497341%2034.160496%2C34.1667315%20C34.8429347%2C35.8997104%2035.2081695%2C37.8892059%2035.2081695%2C40%20L35.2081695%2C40%20Z%20M30.3060182%2C49.6511909%20C30.1108927%2C49.4573121%2030.0128297%2C49.2027839%2030.0128297%2C48.9482557%20C30.0128297%2C48.6937276%2030.1108927%2C48.4391994%2030.3060182%2C48.2453205%20C32.1221857%2C46.4407556%2033.206883%2C43.3575844%2033.206883%2C40%20C33.206883%2C36.6424156%2032.1221857%2C33.5592444%2030.3060182%2C31.7546795%20C30.1108927%2C31.5608006%2030.0128297%2C31.3062724%2030.0128297%2C31.0517443%20C30.0128297%2C30.7972161%2030.1108927%2C30.5426879%2030.3060182%2C30.3488091%20C30.6972697%2C29.9600571%2031.3296762%2C29.9600571%2031.7209277%2C30.3488091%20C35.5984204%2C34.2015303%2044.4401044%2C34.2015303%2048.317597%2C30.3488091%20C48.7088485%2C29.9600571%2049.3412551%2C29.9600571%2049.7325066%2C30.3488091%20C49.927632%2C30.5426879%2050.0256951%2C30.7972161%2050.0256951%2C31.0517443%20C50.0256951%2C31.3062724%2049.927632%2C31.5608006%2049.7325066%2C31.7546795%20C47.9163391%2C33.5592444%2046.8316418%2C36.6424156%2046.8316418%2C40%20C46.8316418%2C43.3575844%2047.9163391%2C46.4407556%2049.7325066%2C48.2453205%20C49.927632%2C48.4391994%2050.0256951%2C48.6937276%2050.0256951%2C48.9482557%20C50.0256951%2C49.2027839%2049.927632%2C49.4573121%2049.7325066%2C49.6511909%20C49.5373812%2C49.8450698%2049.2812165%2C49.9425064%2049.0250518%2C49.9425064%20C48.7688871%2C49.9425064%2048.5127225%2C49.8450698%2048.317597%2C49.6511909%20C44.4401044%2C45.7984697%2035.5984204%2C45.7984697%2031.7209277%2C49.6511909%20C31.3296762%2C50.0399429%2030.6972697%2C50.0399429%2030.3060182%2C49.6511909%20L30.3060182%2C49.6511909%20Z%20M66.0009649%2C40.0049713%20C66.0009649%2C39.0783297%2065.6377314%2C38.2073661%2064.9783075%2C37.5521549%20C64.2978701%2C36.8750702%2063.403295%2C36.5380193%2062.5097205%2C36.5380193%20C61.6161461%2C36.5380193%2060.721571%2C36.8750702%2060.0411336%2C37.5521549%20C58.6792581%2C38.9043358%2058.6792581%2C41.1046125%2060.0411336%2C42.4577876%20C61.4020084%2C43.8099684%2063.6154313%2C43.8109627%2064.9783075%2C42.4577876%20C65.6377314%2C41.8025764%2066.0009649%2C40.9316128%2066.0009649%2C40.0049713%20L66.0009649%2C40.0049713%20Z%20M66.3932171%2C43.863658%20C65.3225288%2C44.9275062%2063.916625%2C45.4594303%2062.5097205%2C45.4594303%20C61.1028161%2C45.4594303%2059.6969123%2C44.9275062%2058.626224%2C43.863658%20C56.4838468%2C41.7359616%2056.4838468%2C38.2739809%2058.626224%2C36.1462845%20C60.7686012%2C34.0165997%2064.2528411%2C34.0185882%2066.3932171%2C36.1462845%20C68.5355943%2C38.2739809%2068.5355943%2C41.7359616%2066.3932171%2C43.863658%20L66.3932171%2C43.863658%20Z%20M20.9800229%2C40.027839%20C20.9800229%2C39.1011974%2020.6167894%2C38.2302339%2019.9573654%2C37.5750227%20C19.2979415%2C36.9198115%2018.421378%2C36.5588985%2017.4887785%2C36.5588985%20C16.5571796%2C36.5588985%2015.6806161%2C36.9198115%2015.0201916%2C37.5750227%20C14.3607676%2C38.2302339%2013.9985348%2C39.1011974%2013.9985348%2C40.027839%20C13.9985348%2C40.9534864%2014.3607676%2C41.8244499%2015.0201916%2C42.4806553%20C16.34004%2C43.7900834%2018.6385176%2C43.7900834%2019.9573654%2C42.4806553%20C20.6167894%2C41.8244499%2020.9800229%2C40.9534864%2020.9800229%2C40.027839%20L20.9800229%2C40.027839%20Z%20M21.372275%2C43.8865257%20C20.3015867%2C44.9503739%2018.8956829%2C45.482298%2017.4887785%2C45.482298%20C16.0828747%2C45.482298%2014.6769709%2C44.9503739%2013.605282%2C43.8865257%20C11.464906%2C41.7588294%2011.464906%2C38.2968487%2013.605282%2C36.1691523%20C15.7476592%2C34.0414559%2019.2308984%2C34.0414559%2021.372275%2C36.1691523%20C23.5136516%2C38.2968487%2023.5136516%2C41.7588294%2021.372275%2C43.8865257%20L21.372275%2C43.8865257%20Z%20M54.8958259%2C54.856093%20C50.901258%2C58.8261358%2045.5888428%2C61.0114987%2039.9392109%2C61.0114987%20C34.2875777%2C61.0114987%2028.9761632%2C58.8261358%2024.9815953%2C54.856093%20C22.241834%2C52.134829%2020.7338646%2C48.8826352%2019.9513616%2C46.6346345%20L18.0601458%2C47.2848744%20C18.9116932%2C49.730731%2020.5577514%2C53.273246%2023.5666857%2C56.2619634%20C27.9394968%2C60.607833%2033.7532342%2C63%2039.9392109%2C63%20C46.124187%2C63%2051.9379244%2C60.607833%2056.3107355%2C56.2619634%20C58.8373597%2C53.7534691%2060.8496533%2C50.563913%2061.9793796%2C47.2818917%20L60.0861625%2C46.6376173%20C59.0534987%2C49.6382657%2057.2103138%2C52.5573856%2054.8958259%2C54.856093%20L54.8958259%2C54.856093%20Z%20M19.9503609%2C33.3663597%20L18.0611465%2C32.7141313%20C19.2719248%2C29.2501621%2021.229183%2C26.0606061%2023.5726896%2C23.7330653%20C27.9434994%2C19.3911728%2033.7552355%2C17%2039.9392109%2C17%20C46.1231863%2C17%2051.9349225%2C19.3911728%2056.3047316%2C23.7330653%20C58.7713173%2C26.1838931%2060.8396469%2C29.4569662%2061.9773783%2C32.7141313%20L60.0881638%2C33.3663597%20C59.0444929%2C30.3836078%2057.1502752%2C27.3849479%2054.889822%2C25.1389357%20C50.898256%2C21.1718757%2045.5878422%2C18.9885013%2039.9392109%2C18.9885013%20C34.289579%2C18.9885013%2028.9801658%2C21.1718757%2024.9875992%2C25.1389357%20C22.8542277%2C27.2596723%2021.0650775%2C30.181775%2019.9503609%2C33.3663597%20L19.9503609%2C33.3663597%20Z%22%20id%3D%22AWS-Simple-Queue-Service_Icon_64_Squid%22%20fill%3D%22%23FFFFFF%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E",
+ "layout": [
+ {
+ "h": 6,
+ "i": "9e1d91ec-fb66-4cff-b5c5-282270ebffb5",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "053a2c4f-d438-400c-9836-8d67ba2f0a81",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "823947d5-ea6d-416b-8ec6-de58f5c4099a",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "de63b951-5445-4688-baf0-373479de3100",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "f7f3a22b-be1b-437d-ba92-43ce0a2532cb",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 12
+ },
+ {
+ "h": 6,
+ "i": "ab592416-9156-4e0a-b0b3-704992f5a57c",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 12
+ },
+ {
+ "h": 6,
+ "i": "872a0925-f3d2-495c-8124-431627de55de",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 18
+ },
+ {
+ "h": 6,
+ "i": "b3663090-7d5f-4b39-8f22-6c50f8abd062",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 18
+ },
+ {
+ "h": 6,
+ "i": "2eb22d97-74a3-486b-965a-58e037275ce1",
+ "w": 6,
+ "x": 0,
+ "y": 24
+ }
+ ],
+ "panelMap": {},
+ "tags": [],
+ "title": "AWS SQS Overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "11f2ffcf-6304-4484-9712-45046a97262f": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "Queue Name",
+ "id": "11f2ffcf-6304-4484-9712-45046a97262f",
+ "modificationUUID": "59324736-39cc-4f86-b502-9c6ff7b06378",
+ "multiSelect": true,
+ "name": "Queue",
+ "order": 2,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'QueueName') AS queue\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_SQS_ApproximateAgeOfOldestMessage_max' \nAND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} \nAND JSONExtractString(labels, 'cloud.region') IN {{.Region}} \nGROUP BY queue",
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "1f7a94df-9735-4bfa-a1b8-dca8ac29f945": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "Account Region",
+ "id": "1f7a94df-9735-4bfa-a1b8-dca8ac29f945",
+ "key": "1f7a94df-9735-4bfa-a1b8-dca8ac29f945",
+ "modificationUUID": "e64806ef-c7b9-44c7-aae5-997ac0a5f042",
+ "multiSelect": false,
+ "name": "Region",
+ "order": 1,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.region') AS region\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_SQS_ApproximateAgeOfOldestMessage_max' AND JSONExtractString(labels, 'cloud.account.id') IN {{.Account}} GROUP BY region",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "93ee15bf-baab-4abf-8828-fe6e75518417": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "AWS Account ID",
+ "id": "93ee15bf-baab-4abf-8828-fe6e75518417",
+ "key": "93ee15bf-baab-4abf-8828-fe6e75518417",
+ "modificationUUID": "dc7edb4b-9bb8-4338-80c9-b8f70187e7e5",
+ "multiSelect": false,
+ "name": "Account",
+ "order": 0,
+ "queryValue": "SELECT DISTINCT JSONExtractString(labels, 'cloud.account.id') AS `cloud.account.id`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'aws_SQS_ApproximateAgeOfOldestMessage_max' GROUP BY `cloud.account.id`",
+ "showALLOption": false,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "9e1d91ec-fb66-4cff-b5c5-282270ebffb5",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SQS_ApproximateAgeOfOldestMessage_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SQS_ApproximateAgeOfOldestMessage_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f3faf3d7",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "e9f94e6c",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "41729af9",
+ "key": {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Queue"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{QueueName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "58fb81eb-eff1-4b5a-b297-448b182e3e38",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Approximate Age of Oldest Message",
+ "yAxisUnit": "s"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "053a2c4f-d438-400c-9836-8d67ba2f0a81",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SQS_ApproximateNumberOfMessagesDelayed_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SQS_ApproximateNumberOfMessagesDelayed_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "bcad72b1",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "7e9fbca3",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "78dd8022",
+ "key": {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Queue"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{QueueName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a06e21bc-7bd7-460f-aa4f-7b2bf0c458a9",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Approximate Number of Messages Delayed",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "823947d5-ea6d-416b-8ec6-de58f5c4099a",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SQS_ApproximateNumberOfMessagesNotVisible_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SQS_ApproximateNumberOfMessagesNotVisible_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d20d64d4",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "072f1e3f",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "a4b6e74a",
+ "key": {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Queue"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{QueueName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "f2b0f843-509f-4ad3-a044-5655f1a64ea4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Approximate Number of Messages Not Visible",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "de63b951-5445-4688-baf0-373479de3100",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SQS_ApproximateNumberOfMessagesVisible_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SQS_ApproximateNumberOfMessagesVisible_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "20a35c55",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "4d702aca",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "b79460ae",
+ "key": {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Queue"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{QueueName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e461ab65-42e2-4e5b-8e86-8f0978936b6f",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Approximate Number of Messages Visible",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "f7f3a22b-be1b-437d-ba92-43ce0a2532cb",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SQS_NumberOfEmptyReceives_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SQS_NumberOfEmptyReceives_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d6acfbea",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "c8f19331",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "81572809",
+ "key": {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Queue"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{QueueName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "8a236577-dc88-4ec0-a3c1-9598a3726e72",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Number of Empty Receives",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "ab592416-9156-4e0a-b0b3-704992f5a57c",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SQS_NumberOfMessagesDeleted_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SQS_NumberOfMessagesDeleted_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "0fe5e8bd",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "6702e7e6",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "bbf8087b",
+ "key": {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Queue"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{QueueName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "85d52d2e-1105-4ca3-8b9d-0c1096ef56a8",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Number of Messages Deleted",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "872a0925-f3d2-495c-8124-431627de55de",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SQS_NumberOfMessagesReceived_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SQS_NumberOfMessagesReceived_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "52cf9dd8",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "35ebf39a",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "e5025b6e",
+ "key": {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Queue"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{QueueName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "56dc8388-653b-48b6-8141-0ab0f5adf6c3",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Number of Messages Received",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "b3663090-7d5f-4b39-8f22-6c50f8abd062",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SQS_NumberOfMessagesSent_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SQS_NumberOfMessagesSent_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "b8f487f1",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "e89032c8",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "ca655170",
+ "key": {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Queue"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{QueueName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "57010fc9-de8a-4fee-b772-0b77d6b982ac",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Number of Messages Sent",
+ "yAxisUnit": "none"
+ },
+ {
+ "bucketCount": 30,
+ "bucketWidth": 0,
+ "columnUnits": {},
+ "description": "",
+ "fillSpans": false,
+ "id": "2eb22d97-74a3-486b-965a-58e037275ce1",
+ "isLogScale": false,
+ "isStacked": false,
+ "mergeAllActiveQueries": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_SQS_SentMessageSize_max--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_SQS_SentMessageSize_max",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "0711b803",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.account.id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.account.id",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Account"
+ },
+ {
+ "id": "15f30a54",
+ "key": {
+ "dataType": "string",
+ "id": "cloud.region--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cloud.region",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "$Region"
+ },
+ {
+ "id": "a4527216",
+ "key": {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "$Queue"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "QueueName--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "QueueName",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{QueueName}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "max",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "98ed9e7b-fabf-4793-ac29-9286fc627e1a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "stackedBarChart": false,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Sent Message Size",
+ "yAxisUnit": "decbytes"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/http_handler.go b/pkg/query-service/app/http_handler.go
index 8c6a6366fb..3badb6c882 100644
--- a/pkg/query-service/app/http_handler.go
+++ b/pkg/query-service/app/http_handler.go
@@ -55,7 +55,6 @@ import (
"github.com/SigNoz/signoz/pkg/query-service/app/queryBuilder"
tracesV3 "github.com/SigNoz/signoz/pkg/query-service/app/traces/v3"
tracesV4 "github.com/SigNoz/signoz/pkg/query-service/app/traces/v4"
- "github.com/SigNoz/signoz/pkg/query-service/auth"
"github.com/SigNoz/signoz/pkg/query-service/contextlinks"
v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3"
"github.com/SigNoz/signoz/pkg/query-service/postprocess"
@@ -255,7 +254,7 @@ func NewAPIHandler(opts APIHandlerOpts) (*APIHandler, error) {
aH.queryBuilder = queryBuilder.NewQueryBuilder(builderOpts)
// TODO(nitya): remote this in later for multitenancy.
- orgs, err := opts.Signoz.Modules.Organization.GetAll(context.Background())
+ orgs, err := opts.Signoz.Modules.OrgGetter.ListByOwnedKeyRange(context.Background())
if err != nil {
zap.L().Warn("unexpected error while fetching orgs while initializing base api handler", zap.Error(err))
}
@@ -2062,9 +2061,9 @@ func (aH *APIHandler) registerUser(w http.ResponseWriter, r *http.Request) {
return
}
- _, apiErr := auth.Register(context.Background(), &req, aH.Signoz.Alertmanager, aH.Signoz.Modules.Organization, aH.Signoz.Modules.User, aH.Signoz.Modules.QuickFilter)
- if apiErr != nil {
- RespondError(w, apiErr, nil)
+ _, errv2 := aH.Signoz.Modules.User.Register(r.Context(), &req)
+ if errv2 != nil {
+ render.Error(w, errv2)
return
}
@@ -5230,3 +5229,30 @@ func (aH *APIHandler) getDomainInfo(w http.ResponseWriter, r *http.Request) {
}
aH.Respond(w, resp)
}
+
+// RegisterTraceFunnelsRoutes adds trace funnels routes
+func (aH *APIHandler) RegisterTraceFunnelsRoutes(router *mux.Router, am *middleware.AuthZ) {
+ // Main trace funnels router
+ traceFunnelsRouter := router.PathPrefix("/api/v1/trace-funnels").Subrouter()
+
+ // API endpoints
+ traceFunnelsRouter.HandleFunc("/new",
+ am.EditAccess(aH.Signoz.Handlers.TraceFunnel.New)).
+ Methods(http.MethodPost)
+ traceFunnelsRouter.HandleFunc("/list",
+ am.ViewAccess(aH.Signoz.Handlers.TraceFunnel.List)).
+ Methods(http.MethodGet)
+ traceFunnelsRouter.HandleFunc("/steps/update",
+ am.EditAccess(aH.Signoz.Handlers.TraceFunnel.UpdateSteps)).
+ Methods(http.MethodPut)
+
+ traceFunnelsRouter.HandleFunc("/{funnel_id}",
+ am.ViewAccess(aH.Signoz.Handlers.TraceFunnel.Get)).
+ Methods(http.MethodGet)
+ traceFunnelsRouter.HandleFunc("/{funnel_id}",
+ am.EditAccess(aH.Signoz.Handlers.TraceFunnel.Delete)).
+ Methods(http.MethodDelete)
+ traceFunnelsRouter.HandleFunc("/{funnel_id}",
+ am.EditAccess(aH.Signoz.Handlers.TraceFunnel.UpdateFunnel)).
+ Methods(http.MethodPut)
+}
diff --git a/pkg/query-service/app/integrations/builtin.go b/pkg/query-service/app/integrations/builtin.go
index 6ea1c41f3f..603dcfcce5 100644
--- a/pkg/query-service/app/integrations/builtin.go
+++ b/pkg/query-service/app/integrations/builtin.go
@@ -7,6 +7,8 @@ import (
"strings"
"unicode"
+ "github.com/SigNoz/signoz/pkg/query-service/constants"
+
"encoding/base64"
"encoding/json"
"fmt"
@@ -176,6 +178,19 @@ func HydrateFileUris(spec interface{}, fs embed.FS, basedir string) (interface{}
if specMap, ok := spec.(map[string]interface{}); ok {
result := map[string]interface{}{}
for k, v := range specMap {
+ // Check if this is a dashboards slice and if dot metrics are enabled
+ if k == "dashboards" && constants.IsDotMetricsEnabled {
+ if dashboards, ok := v.([]interface{}); ok {
+ for i, dashboard := range dashboards {
+ if dashboardUri, ok := dashboard.(string); ok {
+ if strings.HasPrefix(dashboardUri, "file://") {
+ dashboards[i] = strings.Replace(dashboardUri, ".json", "_dot.json", 1)
+ }
+ }
+ }
+ v = dashboards
+ }
+ }
hydrated, err := HydrateFileUris(v, fs, basedir)
if err != nil {
return nil, err
@@ -200,7 +215,6 @@ func HydrateFileUris(spec interface{}, fs embed.FS, basedir string) (interface{}
}
return spec, nil
-
}
func readFileIfUri(fs embed.FS, maybeFileUri string, basedir string) (interface{}, error) {
diff --git a/pkg/query-service/app/integrations/builtin_integrations/aws_elasticache/assets/dashboards/overview_dot.json b/pkg/query-service/app/integrations/builtin_integrations/aws_elasticache/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..62099bdfb2
--- /dev/null
+++ b/pkg/query-service/app/integrations/builtin_integrations/aws_elasticache/assets/dashboards/overview_dot.json
@@ -0,0 +1,2078 @@
+{
+ "id": "elasticache-redis-overview",
+ "description": "Overview of ElastiCache CloudWatch metrics. Provides both host-level metrics (for example, CPU usage) and redis engine metrics",
+ "layout": [
+ {
+ "h": 5,
+ "i": "00d78996-1ba9-42d9-b22b-5818fc3bde4c",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "96c23215-c494-4650-9dc3-ae20858ce1f7",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "6a56afd1-6205-4afe-90fe-86befc3fb55e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "af269a1c-95a3-46b3-8d3b-322c194450e2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "f9b0f03a-8d78-4c26-a037-daae69650eb6",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "18798789-b67a-4c90-8127-f6bb63f012b2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "b3cdeb88-6988-419c-9e94-4a6bccfdd467",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "3604137c-12fe-4205-b7fc-f10d6143583b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "5e69ac87-580f-4dc2-becd-943296e5cd1d",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 20
+ },
+ {
+ "h": 5,
+ "i": "e5c9ccb6-31de-4b80-8f4c-220ea2e874d0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 20
+ },
+ {
+ "h": 5,
+ "i": "dccdd9c3-3864-4aef-a98f-6fb0e30baf0c",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "79723065-b871-4c79-83eb-b32f025c7642",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "8eba8049-2af5-4998-b0e1-cbc2235f9b40",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 30
+ }
+ ],
+ "panelMap": {},
+ "tags": [
+ "aws",
+ "cache",
+ "redis"
+ ],
+ "title": "AWS ElastiCache Redis",
+ "uploadedGrafana": false,
+ "uuid": "5c4832b2-7035-436e-a1c2-cb1f88d238ed",
+ "variables": {
+ "50910278-a96b-4bae-a3b4-4c5b9e7cdefc": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "",
+ "id": "50910278-a96b-4bae-a3b4-4c5b9e7cdefc",
+ "modificationUUID": "635019d8-0e8f-48bc-8912-240c995a5251",
+ "multiSelect": true,
+ "name": "cache_cluster_id",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'cache_cluster_id') as cache_cluster_id\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name like 'aws_elasticache_%'\nGROUP BY cache_cluster_id",
+ "selectedValue": [
+ ""
+ ],
+ "showALLOption": true,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "96c23215-c494-4650-9dc3-ae20858ce1f7",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_engine_cpuutilization_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_engine_cpuutilization_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "18ac6939",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "f31a92eb-aefb-4468-b163-95c2d29e3eaa",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Engine CPU Utilization",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "b3cdeb88-6988-419c-9e94-4a6bccfdd467",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_database_memory_usage_percentage_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_database_memory_usage_percentage_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6f82522a",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "c863166f-7958-4f6c-a956-d5044c846973",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Database Memory Usage Percentage",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "18798789-b67a-4c90-8127-f6bb63f012b2",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_database_capacity_usage_percentage_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_database_capacity_usage_percentage_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "80632329",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "b659e4ed-5b6b-4ec8-911c-b906580b1ab5",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Database Capacity Usage Percentage",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "af269a1c-95a3-46b3-8d3b-322c194450e2",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_cache_hits_sum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_cache_hits_sum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "dd856067",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "",
+ "id": "cache_cluster_id------false",
+ "isColumn": false,
+ "key": "cache_cluster_id",
+ "type": ""
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "f2bc46b8-8d90-4d31-8e38-df61f7b58f55",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Cache Hit Rate",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "f9b0f03a-8d78-4c26-a037-daae69650eb6",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_memory_fragmentation_ratio_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_memory_fragmentation_ratio_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "76d19eac",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "50b499c5-36dd-49e9-aae7-f1c225219434",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Memory Fragmentation Ratio",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "dccdd9c3-3864-4aef-a98f-6fb0e30baf0c",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_swap_usage_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_swap_usage_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "27530337",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "221b1817-b059-439e-bfaf-39089520344d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Swap Usage",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "3604137c-12fe-4205-b7fc-f10d6143583b",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_freeable_memory_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_freeable_memory_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5f333785",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "cb158f83-72aa-4c36-bd26-9efc03d6ad15",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Freeable Memory",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "5e69ac87-580f-4dc2-becd-943296e5cd1d",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_network_bytes_in_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_network_bytes_in_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5c18156a",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a0114277-cb86-40b2-b002-71b021f81e39",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network Bytes In",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "e5c9ccb6-31de-4b80-8f4c-220ea2e874d0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_network_bytes_out_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_network_bytes_out_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6f0c2153",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "51fd65b6-84f3-4ffd-81c3-5d581892cbad",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network Bytes Out",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "6a56afd1-6205-4afe-90fe-86befc3fb55e",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_curr_connections_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_curr_connections_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "58582d67",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "1ee12dc9-a2f0-4c19-90ec-269cbece6fee",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Current Connections",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "8eba8049-2af5-4998-b0e1-cbc2235f9b40",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_replication_lag_maximum--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_replication_lag_maximum",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "69a98f19",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "95afdad6-29c3-4248-859f-bf142ad68f6a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Replication Lag",
+ "yAxisUnit": "s"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "79723065-b871-4c79-83eb-b32f025c7642",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_evictions_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_evictions_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "ea75b479",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "713cd286-0072-4c2b-b3cf-6631ca7c4958",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Evictions",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "00d78996-1ba9-42d9-b22b-5818fc3bde4c",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_elasticache_cpuutilization_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_elasticache_cpuutilization_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "028cb504",
+ "key": {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.cache_cluster_id}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "cache_cluster_id--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "cache_cluster_id",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{cache_cluster_id}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "794f841f-4281-4e02-8b2d-97641b356e60",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPU Utilization",
+ "yAxisUnit": "none"
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/pkg/query-service/app/integrations/builtin_integrations/aws_rds_mysql/assets/dashboards/db_metrics_dot.json b/pkg/query-service/app/integrations/builtin_integrations/aws_rds_mysql/assets/dashboards/db_metrics_dot.json
new file mode 100644
index 0000000000..300853d648
--- /dev/null
+++ b/pkg/query-service/app/integrations/builtin_integrations/aws_rds_mysql/assets/dashboards/db_metrics_dot.json
@@ -0,0 +1,2935 @@
+{
+ "id": "aws_rds_mysql_db_metrics",
+ "description": "",
+ "layout": [
+ {
+ "h": 1,
+ "i": "a1da815a-c8b8-4e86-8630-a3265e3be002",
+ "maxH": 1,
+ "minH": 1,
+ "minW": 12,
+ "moved": false,
+ "static": false,
+ "w": 12,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "121f2894-dd86-423a-8bb8-93f853aad93e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 1
+ },
+ {
+ "h": 6,
+ "i": "0dc8699d-35d7-4c73-b25e-ce2c05e1574b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 1
+ },
+ {
+ "h": 6,
+ "i": "19da4480-77f3-4999-9cd5-f76c02cb4e8d",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 7
+ },
+ {
+ "h": 6,
+ "i": "864ac52b-87aa-423a-aafb-975207baa3af",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 7
+ },
+ {
+ "h": 6,
+ "i": "11d5c39c-d780-4752-a868-a88d95e2a264",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 13
+ },
+ {
+ "h": 6,
+ "i": "c65eccc5-568b-4da3-8dee-90cf46cfbdcb",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 13
+ },
+ {
+ "h": 6,
+ "i": "b0ccb2fd-865a-422c-821f-4c8e4058e575",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 19
+ },
+ {
+ "h": 6,
+ "i": "942b5e3c-733a-454a-b7f7-b4256696483a",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 19
+ },
+ {
+ "h": 6,
+ "i": "ee89777a-111f-4c4e-bef5-3348b6a07b45",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 25
+ },
+ {
+ "h": 6,
+ "i": "b1e49f1a-8f97-4174-9cc7-0e4e4d2309f6",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 25
+ },
+ {
+ "h": 1,
+ "i": "52d4e290-ebe9-4e17-9e0d-57c4537996a2",
+ "maxH": 1,
+ "minH": 1,
+ "minW": 12,
+ "moved": false,
+ "static": false,
+ "w": 12,
+ "x": 0,
+ "y": 31
+ },
+ {
+ "h": 6,
+ "i": "26d0b9f5-9dee-49ff-a8b5-baad92bd85ee",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 32
+ },
+ {
+ "h": 6,
+ "i": "2c1421c3-6d09-43d3-b5fc-bea817595786",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 32
+ },
+ {
+ "h": 1,
+ "i": "2b3c134c-ef8e-40a3-be5b-1c2b31f5f774",
+ "maxH": 1,
+ "minH": 1,
+ "minW": 12,
+ "moved": false,
+ "static": false,
+ "w": 12,
+ "x": 0,
+ "y": 38
+ },
+ {
+ "h": 5,
+ "i": "9f188ac9-7b6c-4f23-85df-442c90fb1e98",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 39
+ },
+ {
+ "h": 5,
+ "i": "bc6a7150-bb0b-4fb5-b132-217f20b4cd06",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 39
+ },
+ {
+ "h": 5,
+ "i": "b99182d7-efd4-43a5-bd61-3a35d9f88a0e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 44
+ },
+ {
+ "h": 5,
+ "i": "18f8b51f-074c-45e3-8f25-6e70cb8ad222",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 44
+ }
+ ],
+ "panelMap": {
+ "2b3c134c-ef8e-40a3-be5b-1c2b31f5f774": {
+ "collapsed": false,
+ "widgets": [
+ {
+ "h": 5,
+ "i": "9f188ac9-7b6c-4f23-85df-442c90fb1e98",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 23
+ },
+ {
+ "h": 5,
+ "i": "bc6a7150-bb0b-4fb5-b132-217f20b4cd06",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 23
+ },
+ {
+ "h": 5,
+ "i": "b99182d7-efd4-43a5-bd61-3a35d9f88a0e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 28
+ },
+ {
+ "h": 5,
+ "i": "18f8b51f-074c-45e3-8f25-6e70cb8ad222",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 28
+ }
+ ]
+ },
+ "52d4e290-ebe9-4e17-9e0d-57c4537996a2": {
+ "collapsed": false,
+ "widgets": [
+ {
+ "h": 6,
+ "i": "26d0b9f5-9dee-49ff-a8b5-baad92bd85ee",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 43
+ },
+ {
+ "h": 5,
+ "i": "18f8b51f-074c-45e3-8f25-6e70cb8ad222",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 43
+ },
+ {
+ "h": 6,
+ "i": "2c1421c3-6d09-43d3-b5fc-bea817595786",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 48
+ }
+ ]
+ },
+ "a1da815a-c8b8-4e86-8630-a3265e3be002": {
+ "collapsed": false,
+ "widgets": [
+ {
+ "h": 6,
+ "i": "942b5e3c-733a-454a-b7f7-b4256696483a",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 6,
+ "i": "19da4480-77f3-4999-9cd5-f76c02cb4e8d",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 6,
+ "i": "b0ccb2fd-865a-422c-821f-4c8e4058e575",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 12
+ },
+ {
+ "h": 6,
+ "i": "0dc8699d-35d7-4c73-b25e-ce2c05e1574b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 18
+ },
+ {
+ "h": 6,
+ "i": "ee89777a-111f-4c4e-bef5-3348b6a07b45",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 24
+ },
+ {
+ "h": 6,
+ "i": "c65eccc5-568b-4da3-8dee-90cf46cfbdcb",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 30
+ },
+ {
+ "h": 6,
+ "i": "121f2894-dd86-423a-8bb8-93f853aad93e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 36
+ },
+ {
+ "h": 6,
+ "i": "b1e49f1a-8f97-4174-9cc7-0e4e4d2309f6",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 42
+ },
+ {
+ "h": 6,
+ "i": "864ac52b-87aa-423a-aafb-975207baa3af",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 48
+ },
+ {
+ "h": 6,
+ "i": "11d5c39c-d780-4752-a868-a88d95e2a264",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 54
+ }
+ ]
+ }
+ },
+ "tags": [
+ "mysql"
+ ],
+ "title": "MySQL",
+ "uploadedGrafana": false,
+ "variables": {
+ "31d3f13b-27d5-4291-9fb3-d5d5708a72f3": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "",
+ "id": "31d3f13b-27d5-4291-9fb3-d5d5708a72f3",
+ "modificationUUID": "e4a9edf1-acd0-48b7-8a35-1b4bb668408d",
+ "multiSelect": false,
+ "name": "mysql.instance.endpoint",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'mysql.instance.endpoint') as `mysql.instance.endpoint`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'mysql.uptime'\nGROUP BY `mysql.instance.endpoint`",
+ "selectedValue": "",
+ "showALLOption": false,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "9f188ac9-7b6c-4f23-85df-442c90fb1e98",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.buffer_pool.pages--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.buffer_pool.pages",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d0ece7c5",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "status--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "status",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{status}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "41139bf9-846d-4aff-b31b-43c8d42f6aea",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Buffer pool usage by status",
+ "yAxisUnit": "bytes"
+ },
+ {
+ "description": "",
+ "id": "2b3c134c-ef8e-40a3-be5b-1c2b31f5f774",
+ "panelTypes": "row",
+ "title": "Buffer pool"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "b99182d7-efd4-43a5-bd61-3a35d9f88a0e",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.buffer_pool.pages--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.buffer_pool.pages",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5a3714e3",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "kind--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "kind",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{kind}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0fe54f66-5f01-4468-9681-b0fd52ea7d01",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Buffer pool pages by kind",
+ "yAxisUnit": "short"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "bc6a7150-bb0b-4fb5-b132-217f20b4cd06",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.buffer_pool.data_pages--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.buffer_pool.data_pages",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "fb2c8b1f",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "status--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "status",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{status}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "ce9c23bd-8a9d-4bce-af85-9696360d4431",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Data pages by status",
+ "yAxisUnit": "short"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "18f8b51f-074c-45e3-8f25-6e70cb8ad222",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.buffer_pool.page_flushes--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.buffer_pool.page_flushes",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "aaed0865",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Count",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0a94bead-a3e4-4ae8-a500-77d50a4c6b17",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Total buffer pool page flushes",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "id": "52d4e290-ebe9-4e17-9e0d-57c4537996a2",
+ "panelTypes": "row",
+ "title": "Table"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "ca688417-3ded-4482-aa4d-73dd9ce4e715",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.table.io.wait.count--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.table.io.wait.count",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "416ad837",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "table--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "table",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Count",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "6608d3ce-0058-44ed-9f76-3474ab0765aa",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "count of I/O wait events",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "26d0b9f5-9dee-49ff-a8b5-baad92bd85ee",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.table.io.wait.count--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.table.io.wait.count",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "3773e4f8",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "table--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "table",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "count",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "f02c5c6d-d5c0-4fb5-9d9d-5e8037a7824e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "count of table I/O wait events",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "2c1421c3-6d09-43d3-b5fc-bea817595786",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.table.io.wait.count--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.table.io.wait.count",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "3773e4f8",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "table--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "table",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "count",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "f02c5c6d-d5c0-4fb5-9d9d-5e8037a7824e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "count of table I/O wait events",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "11d5c39c-d780-4752-a868-a88d95e2a264",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.handlers--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.handlers",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "ac5632dc",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "kind--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "kind",
+ "type": "tag"
+ }
+ ],
+ "having": [
+ {
+ "columnName": "SUM(`mysql.handlers`)",
+ "op": ">",
+ "value": 0
+ }
+ ],
+ "legend": "{{kind}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "d30af321-a7f6-49da-81a9-ba9577606dfd",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Count by handlers",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "864ac52b-87aa-423a-aafb-975207baa3af",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.locks--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.locks",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "e2692b23",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "kind--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "kind",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{kind}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "71dbfc3f-10e3-4a23-b5c8-dd2c15ae800a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "MySQL locks",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "b1e49f1a-8f97-4174-9cc7-0e4e4d2309f6",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.log_operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.log_operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "b2ce5aae",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "count",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "c31ca2ae-8a6e-4293-a8e1-c544c093dcfd",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "InnoDB log operations",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "121f2894-dd86-423a-8bb8-93f853aad93e",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.connection.count--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.connection.count",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7ba56364",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Connection count",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.connection.errors--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.connection.errors",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "ed85e243",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "error--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "error",
+ "type": "tag"
+ }
+ ],
+ "having": [
+ {
+ "columnName": "SUM(mysql.connection.errors)",
+ "op": ">",
+ "value": 0
+ }
+ ],
+ "legend": "Error count: {{error}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "bde94864-1375-4617-9e62-2767981b57fc",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Connection/Errors",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "c65eccc5-568b-4da3-8dee-90cf46cfbdcb",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.opened_resources--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.opened_resources",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "517c903b",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "kind--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "kind",
+ "type": "tag"
+ }
+ ],
+ "having": [
+ {
+ "columnName": "SUM(mysql.opened_resources)",
+ "op": ">",
+ "value": 0
+ }
+ ],
+ "legend": "{{kind}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "62325340-e5db-4717-a55b-a0ff2dff77be",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Open resources count",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "ee89777a-111f-4c4e-bef5-3348b6a07b45",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "99fe0131",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "2825eb5d-e03e-42d7-980b-d2e4ded149a4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Count of operations",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "0dc8699d-35d7-4c73-b25e-ce2c05e1574b",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.row_locks--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.row_locks",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7ed07e24",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "kind--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "kind",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{kind}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "8598c0ff-d274-445f-8a3c-53c02595e0ff",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Row locks",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "b0ccb2fd-865a-422c-821f-4c8e4058e575",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.threads--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.threads",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "93e5a9ee",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "kind--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "kind",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "count",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "5970ac20-a757-4d1b-80da-b6ec01fbe553",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Thread type count",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "19da4480-77f3-4999-9cd5-f76c02cb4e8d",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.row_operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.row_operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "bd45ea2f",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{operation}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "68287f23-55e3-4d02-9ce3-0107abb17412",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Row operations",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "942b5e3c-733a-454a-b7f7-b4256696483a",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mysql.prepared_statements--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mysql.prepared_statements",
+ "type": "Sum"
+ },
+ "aggregateOperator": "increase",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "32634e42",
+ "key": {
+ "dataType": "string",
+ "id": "mysql.instance.endpoint--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mysql.instance.endpoint",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.mysql.instance.endpoint}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "command--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "command",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "count",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "increase"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "3fa25e4b-30f9-41d8-8acc-a97aab8a18cd",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Prepared statement count",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "id": "a1da815a-c8b8-4e86-8630-a3265e3be002",
+ "panelTypes": "row",
+ "title": "Resources"
+ }
+ ],
+ "uuid": "0a5a35a0-01f8-4597-8ece-74824c5e9e80"
+ }
diff --git a/pkg/query-service/app/integrations/builtin_integrations/aws_rds_mysql/assets/dashboards/overview_dot.json b/pkg/query-service/app/integrations/builtin_integrations/aws_rds_mysql/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..0e89b8a957
--- /dev/null
+++ b/pkg/query-service/app/integrations/builtin_integrations/aws_rds_mysql/assets/dashboards/overview_dot.json
@@ -0,0 +1,2602 @@
+{
+ "id": "aws_rds_mysql",
+ "description": "",
+ "layout": [
+ {
+ "h": 5,
+ "i": "8d22c6a7-b22e-4ad2-b242-e15de32ddc0f",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "94fe032e-3ffc-4cdc-aae6-f851fa47d957",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "6807e631-4894-4de8-8a55-686c8fa08d4b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "d599a942-4dbf-4e29-a3ac-a3142399b557",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "d16d8683-8c69-4526-a9cd-cc21ae5c60af",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "845ee717-bbd1-424c-8293-f49e76aa43b3",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "31c78945-ea1e-4ae1-b0fb-6f1c9de2c016",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "ae099f6e-5d6c-4127-ac70-2da9741837d7",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "03c1f0bd-6713-4355-b8e3-6ef781af32c2",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 0,
+ "y": 20
+ },
+ {
+ "h": 5,
+ "i": "37aabb43-fd8b-47c5-9444-0cd77f9ac435",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 4,
+ "y": 20
+ },
+ {
+ "h": 5,
+ "i": "c6939628-3c4c-48fb-a2cf-46f6cb358359",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 8,
+ "y": 20
+ },
+ {
+ "h": 5,
+ "i": "7854afc7-0cd5-4792-a760-be98a2e2f96b",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 0,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "8126584b-eaa9-4b79-ba8e-a00c394544d8",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 4,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "3d0a6717-1fd0-4810-b0e9-fe5190d5809f",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 8,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "ffc39591-288f-4b28-87ee-43456d5d0667",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 30
+ },
+ {
+ "h": 5,
+ "i": "c5189b72-1055-4d6a-b18d-fa23bd9c28d6",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 30
+ }
+ ],
+ "panelMap": {},
+ "tags": [
+ "aws",
+ "rds",
+ "mysql"
+ ],
+ "title": "AWS RDS MySQL",
+ "uploadedGrafana": false,
+ "uuid": "7799e6c9-9b37-4617-9b01-3033665e6605",
+ "variables": {
+ "5ae02d7b-d201-4481-ad6f-ffb9d53e1b3e": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "This is the unique key that identifies a DB instance",
+ "id": "5ae02d7b-d201-4481-ad6f-ffb9d53e1b3e",
+ "modificationUUID": "1ecf21e3-488a-41e7-92f2-7dc75c9de49a",
+ "multiSelect": true,
+ "name": "dbinstance_identifier",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'dbinstance_identifier') as dbinstance_identifier\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name like 'aws_rds_database_connections_average'\nGROUP BY dbinstance_identifier",
+ "selectedValue": "",
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "description": "The number of client network connections to the database instance.",
+ "fillSpans": false,
+ "id": "94fe032e-3ffc-4cdc-aae6-f851fa47d957",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_database_connections_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_database_connections_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "4e451ffc",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "b6816e82-3e9b-4dc6-9fc0-047ef50e47d4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "DatabaseConnections",
+ "yAxisUnit": "short"
+ },
+ {
+ "description": "The percentage of CPU utilization.",
+ "fillSpans": false,
+ "id": "8d22c6a7-b22e-4ad2-b242-e15de32ddc0f",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_cpuutilization_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_cpuutilization_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f0a48ddc",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0318116a-ba6b-405c-b2c0-8dfb321f3ad0",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPUUtilization",
+ "yAxisUnit": "percent"
+ },
+ {
+ "description": "The amount of available random access memory. This metric reports the value of the MemAvailable field of /proc/meminfo",
+ "fillSpans": false,
+ "id": "d599a942-4dbf-4e29-a3ac-a3142399b557",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_freeable_memory_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_freeable_memory_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "b738d056",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "5a1e0e0d-3190-4a38-8030-b48d24ebe0f1",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "FreeableMemory",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "c6939628-3c4c-48fb-a2cf-46f6cb358359",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_read_latency_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_read_latency_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d0ac5956",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "794a5db3-b75c-4354-a509-ab24b5daeba4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "ReadLatency",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "03c1f0bd-6713-4355-b8e3-6ef781af32c2",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_read_throughput_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_read_throughput_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "bdc062ed",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "6915105d-17eb-4863-8ccd-88c6a56d9ad7",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "aws_rds_read_throughput_average"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "ReadThroughput",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "37aabb43-fd8b-47c5-9444-0cd77f9ac435",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_read_iops_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_read_iops_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "74504cdf",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0ab52186-6617-4f8b-a3fc-3778c09b6faf",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "ReadIOPS",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The amount of available storage space.",
+ "fillSpans": false,
+ "id": "6807e631-4894-4de8-8a55-686c8fa08d4b",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_free_storage_space_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_free_storage_space_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "3cfa657c",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "b7f7c9e9-0fdf-462e-b465-57025785e98f",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "FreeStorageSpace",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "7854afc7-0cd5-4792-a760-be98a2e2f96b",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_write_throughput_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_write_throughput_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "05330793",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "d6be5165-c686-412f-80f7-4a81a28cae7d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "WriteThroughput",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "8126584b-eaa9-4b79-ba8e-a00c394544d8",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_write_iops_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_write_iops_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "0606e3a2",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "253e440a-b13d-411c-a069-d4da1f4c84d7",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "WriteIOPS",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "ffc39591-288f-4b28-87ee-43456d5d0667",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_network_transmit_throughput_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_network_transmit_throughput_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d5e2f293",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "n/w transmit",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_network_receive_throughput_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_network_receive_throughput_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "e968f079",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "n/w receive",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "sum",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "sum"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "2c6be01b-25d9-4480-80c9-f180edad6bf9",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network transmit/receive",
+ "yAxisUnit": "Bps"
+ },
+ {
+ "description": "The number of outstanding I/Os (read/write requests) waiting to access the disk.",
+ "fillSpans": false,
+ "id": "845ee717-bbd1-424c-8293-f49e76aa43b3",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_disk_queue_depth_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_disk_queue_depth_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "96c73381",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "afe73a96-1c56-451e-bca6-2c41c62d47a8",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "DiskQueueDepth",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The percentage of throughput credits remaining in the burst bucket of your RDS database. ",
+ "fillSpans": false,
+ "id": "ae099f6e-5d6c-4127-ac70-2da9741837d7",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_ebsiobalance__average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_ebsiobalance__average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "e88eb970",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "1d8b8b67-0646-4ebc-aa8b-1c10643ddfa0",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "EBSByteBalance%",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The percentage of I/O credits remaining in the burst bucket of your RDS database.",
+ "fillSpans": false,
+ "id": "31c78945-ea1e-4ae1-b0fb-6f1c9de2c016",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_ebsiobalance__average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_ebsiobalance__average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "c8d78684",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a0f7c676-ae5f-4db9-bb73-26dbb9db7fab",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "EBSIOBalance%",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The amount of disk space occupied by binary logs. If automatic backups are enabled for MySQL and MariaDB instances, including read replicas, binary logs are created.",
+ "fillSpans": false,
+ "id": "d16d8683-8c69-4526-a9cd-cc21ae5c60af",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_bin_log_disk_usage_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_bin_log_disk_usage_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "1707f954",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "dbinstance_identifier",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "334d7c5d-4851-419a-90b2-86ebe21befff",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "BinLogDiskUsage",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "3d0a6717-1fd0-4810-b0e9-fe5190d5809f",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_write_latency_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_write_latency_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5b97fb87",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "7533cf12-7ee3-49e8-8fcd-c1f82ea317ab",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "WriteLatency",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "c5189b72-1055-4d6a-b18d-fa23bd9c28d6",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_swap_usage_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_swap_usage_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "afabe318",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "61ecb019-0fbf-44f1-a9db-995b86ee4805",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "SwapUsage",
+ "yAxisUnit": "decbytes"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pkg/query-service/app/integrations/builtin_integrations/aws_rds_postgres/assets/dashboards/db_metrics_overview_dot.json b/pkg/query-service/app/integrations/builtin_integrations/aws_rds_postgres/assets/dashboards/db_metrics_overview_dot.json
new file mode 100644
index 0000000000..2dec4648aa
--- /dev/null
+++ b/pkg/query-service/app/integrations/builtin_integrations/aws_rds_postgres/assets/dashboards/db_metrics_overview_dot.json
@@ -0,0 +1,1820 @@
+{
+ "description": "This dashboard provides a high-level overview of your PostgreSQL databases. It includes replication, locks, and throughput etc...",
+ "id": "postgres_overview_metrics",
+ "layout": [
+ {
+ "h": 1,
+ "i": "3bd16024-b9ff-4f02-8107-1fd817604d5f",
+ "maxH": 1,
+ "minH": 1,
+ "minW": 12,
+ "moved": false,
+ "static": false,
+ "w": 12,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "8638a199-20a0-4255-b0a2-3b1ba06c485b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 1
+ },
+ {
+ "h": 1,
+ "i": "7df9b6d2-8f7f-48d4-80d6-ae07d47746d6",
+ "maxH": 1,
+ "minH": 1,
+ "minW": 12,
+ "moved": false,
+ "static": false,
+ "w": 12,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 5,
+ "i": "191d09a6-40b0-4de8-a5b0-aa4254454b99",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 7
+ },
+ {
+ "h": 5,
+ "i": "fa941c00-ce19-49cc-baf2-c38598767dee",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 7
+ },
+ {
+ "h": 5,
+ "i": "114fcf80-e1de-4716-b1aa-0e0738dba10e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 12
+ },
+ {
+ "h": 5,
+ "i": "667428ef-9b9a-4e91-bd1e-938e0dc1ff32",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 12
+ },
+ {
+ "h": 5,
+ "i": "bada7864-1d23-4d49-a868-c6b8a93c738f",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 17
+ },
+ {
+ "h": 1,
+ "i": "b437186f-d112-4fb9-bed5-5bea2b5f4b60",
+ "maxH": 1,
+ "minH": 1,
+ "minW": 12,
+ "moved": false,
+ "static": false,
+ "w": 12,
+ "x": 0,
+ "y": 22
+ },
+ {
+ "h": 5,
+ "i": "6b700035-e3c2-4c48-99fa-ebfd6202eed3",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 23
+ },
+ {
+ "h": 5,
+ "i": "e9341e70-ccb3-47fc-af95-56ba8942c4f2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 23
+ },
+ {
+ "h": 1,
+ "i": "4b94cfd8-7a28-46f9-a618-0a186908f0d5",
+ "maxH": 1,
+ "minH": 1,
+ "minW": 12,
+ "moved": false,
+ "static": false,
+ "w": 12,
+ "x": 0,
+ "y": 28
+ },
+ {
+ "h": 6,
+ "i": "9552123d-6265-48a7-8624-3f4a3fc3c9c0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 29
+ },
+ {
+ "h": 5,
+ "i": "d7838815-4f5b-4454-86fd-f658b201f3a9",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 29
+ },
+ {
+ "h": 5,
+ "i": "f9a6f683-7455-4643-acc8-467cc5ea52cf",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 35
+ }
+ ],
+ "name": "",
+ "panelMap": {
+ "3bd16024-b9ff-4f02-8107-1fd817604d5f": {
+ "collapsed": false,
+ "widgets": []
+ },
+ "4b94cfd8-7a28-46f9-a618-0a186908f0d5": {
+ "collapsed": true,
+ "widgets": []
+ },
+ "7df9b6d2-8f7f-48d4-80d6-ae07d47746d6": {
+ "collapsed": false,
+ "widgets": [
+ {
+ "h": 5,
+ "i": "191d09a6-40b0-4de8-a5b0-aa4254454b99",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 1
+ },
+ {
+ "h": 5,
+ "i": "fa941c00-ce19-49cc-baf2-c38598767dee",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 1
+ },
+ {
+ "h": 5,
+ "i": "114fcf80-e1de-4716-b1aa-0e0738dba10e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 5,
+ "i": "667428ef-9b9a-4e91-bd1e-938e0dc1ff32",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ },
+ {
+ "h": 5,
+ "i": "bada7864-1d23-4d49-a868-c6b8a93c738f",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 11
+ }
+ ]
+ },
+ "b437186f-d112-4fb9-bed5-5bea2b5f4b60": {
+ "collapsed": false,
+ "widgets": [
+ {
+ "h": 5,
+ "i": "6b700035-e3c2-4c48-99fa-ebfd6202eed3",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 47
+ },
+ {
+ "h": 5,
+ "i": "e9341e70-ccb3-47fc-af95-56ba8942c4f2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 47
+ },
+ {
+ "h": 4,
+ "i": "8638a199-20a0-4255-b0a2-3b1ba06c485b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 3,
+ "y": 52
+ },
+ {
+ "h": 5,
+ "i": "f9a6f683-7455-4643-acc8-467cc5ea52cf",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 56
+ },
+ {
+ "h": 5,
+ "i": "d7838815-4f5b-4454-86fd-f658b201f3a9",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 56
+ },
+ {
+ "h": 7,
+ "i": "9552123d-6265-48a7-8624-3f4a3fc3c9c0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 61
+ }
+ ]
+ }
+ },
+ "tags": [
+ "postgres",
+ "database"
+ ],
+ "title": "Postgres overview",
+ "uploadedGrafana": false,
+ "variables": {
+ "8ecaee70-640f-46fd-83d9-a4fd18bc66e6": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "List of tables",
+ "id": "8ecaee70-640f-46fd-83d9-a4fd18bc66e6",
+ "modificationUUID": "a51321cd-47a2-470a-8df4-372e5bb36f2c",
+ "multiSelect": true,
+ "name": "table_name",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'postgresql.table.name') AS table_name\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'postgresql.operations' AND JSONExtractString(labels, 'postgresql.database.name') IN {{.db_name}}\nGROUP BY table_name",
+ "selectedValue": [
+ "public.pgbench_accounts",
+ "public.pgbench_branches",
+ "public.pgbench_history",
+ "public.pgbench_tellers"
+ ],
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "c66d1581-e5e1-440d-8ff6-ebcf078ab6dd": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "List of databases",
+ "id": "c66d1581-e5e1-440d-8ff6-ebcf078ab6dd",
+ "key": "c66d1581-e5e1-440d-8ff6-ebcf078ab6dd",
+ "modificationUUID": "564a3f43-98f8-4189-b5e4-dcb518d73852",
+ "multiSelect": true,
+ "name": "db_name",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'postgresql.database.name') AS db_name\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'postgresql.operations'\nGROUP BY db_name",
+ "selectedValue": [
+ "pgtestdb"
+ ],
+ "showALLOption": true,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "widgets": [
+ {
+ "description": "The average number of db insert operations.",
+ "fillSpans": false,
+ "id": "191d09a6-40b0-4de8-a5b0-aa4254454b99",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "c1dff946",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "ins"
+ },
+ {
+ "id": "2e60e171",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "bf48ac4c-bc0c-41a0-87f4-6f8ae7888d1f",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Inserts",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The average number of db update operations.",
+ "fillSpans": false,
+ "id": "fa941c00-ce19-49cc-baf2-c38598767dee",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "98463ec9",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "upd"
+ },
+ {
+ "id": "64020332",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "34a6ac3a-b7f6-4b5f-a084-a44378033d82",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Updates",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The average number of db delete operations.",
+ "fillSpans": false,
+ "id": "114fcf80-e1de-4716-b1aa-0e0738dba10e",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "62738de4",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "del"
+ },
+ {
+ "id": "9d153899",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "734393d1-76ed-4f4f-bef8-0a91d27ebec4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Deleted",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The average number of db heap-only update operations.",
+ "fillSpans": false,
+ "id": "667428ef-9b9a-4e91-bd1e-938e0dc1ff32",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a91e35c4",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "hot_upd"
+ },
+ {
+ "id": "7b4a29a2",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "f43c2d19-4abc-4f5e-881b-db7add4a870a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Heap updates",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "bada7864-1d23-4d49-a868-c6b8a93c738f",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d6aeccf7",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "ins"
+ },
+ {
+ "id": "ee4e9344",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Inserted",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "a12cceed",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "upd"
+ },
+ {
+ "id": "2d542482",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Updated",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "1bca3e46",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "del"
+ },
+ {
+ "id": "44ffc874",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Deleted",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "5056105b-1c30-4d27-8187-64457f2a1ec6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Operation by database",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The number of database locks.",
+ "fillSpans": false,
+ "id": "6b700035-e3c2-4c48-99fa-ebfd6202eed3",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.database.locks--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.database.locks",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "mode--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mode",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{mode}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "877b0df3-9ae3-455e-ad27-bc3aa40b3f4c",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Locks by lock mode",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "e9341e70-ccb3-47fc-af95-56ba8942c4f2",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.deadlocks--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.deadlocks",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "efb83717",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "5056105b-1c30-4d27-8187-64457f2a1ec6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Deadlocks count",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "8638a199-20a0-4255-b0a2-3b1ba06c485b",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.backends--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.backends",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "20d2a4c5",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "205b99a0-2f1c-4bd2-9ba0-cc2da6ef247a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Connections per db",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "f9a6f683-7455-4643-acc8-467cc5ea52cf",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.rows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.rows",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "70786905",
+ "key": {
+ "dataType": "string",
+ "id": "state--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "state",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "dead"
+ },
+ {
+ "id": "3e5ef839",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ },
+ {
+ "id": "9e913563",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "Dead rows",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "cc7452c8-118b-4676-959e-7062bafc41ee",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Dead rows",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "d7838815-4f5b-4454-86fd-f658b201f3a9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.index.scans--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.index.scans",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "590332a7",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ },
+ {
+ "id": "171b9516",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.index.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.index.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.index.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "2c6b630b-8bd9-4001-815b-f2b1f439a9dd",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Index scans by index",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "9552123d-6265-48a7-8624-3f4a3fc3c9c0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "clickhouse_sql": [
+ {
+ "name": "A",
+ "legend": "",
+ "disabled": false,
+ "query": ""
+ }
+ ],
+ "promql": [
+ {
+ "name": "A",
+ "query": "",
+ "legend": "",
+ "disabled": false
+ }
+ ],
+ "builder": {
+ "queryData": [
+ {
+ "dataSource": "metrics",
+ "queryName": "A",
+ "aggregateOperator": "avg",
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.rows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.rows",
+ "type": "Sum"
+ },
+ "timeAggregation": "rate",
+ "spaceAggregation": "sum",
+ "functions": [],
+ "filters": {
+ "items": [
+ {
+ "id": "d2039662",
+ "key": {
+ "dataType": "string",
+ "id": "state--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "state",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "dead"
+ },
+ {
+ "id": "21c6d446",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ },
+ {
+ "id": "a44d1843",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "expression": "A",
+ "disabled": false,
+ "having": [],
+ "stepInterval": 840,
+ "limit": null,
+ "orderBy": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag",
+ "id": "postgresql.table.name--string--tag--false"
+ }
+ ],
+ "legend": "Dead rows",
+ "reduceTo": "sum"
+ },
+ {
+ "dataSource": "metrics",
+ "queryName": "B",
+ "aggregateOperator": "avg",
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.rows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.rows",
+ "type": "Sum"
+ },
+ "timeAggregation": "rate",
+ "spaceAggregation": "sum",
+ "functions": [],
+ "filters": {
+ "items": [
+ {
+ "id": "74888dbf",
+ "key": {
+ "dataType": "string",
+ "id": "state--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "state",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "live"
+ },
+ {
+ "id": "3e5d7976",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ },
+ {
+ "id": "c18ed7a3",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "expression": "B",
+ "disabled": false,
+ "having": [],
+ "stepInterval": 840,
+ "limit": null,
+ "orderBy": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag",
+ "id": "postgresql.table.name--string--tag--false"
+ }
+ ],
+ "legend": "Live rows",
+ "reduceTo": "sum"
+ },
+ {
+ "dataSource": "metrics",
+ "queryName": "C",
+ "aggregateOperator": "sum_rate",
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.index.scans--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.index.scans",
+ "type": "Sum"
+ },
+ "timeAggregation": "rate",
+ "spaceAggregation": "sum",
+ "functions": [],
+ "filters": {
+ "items": [
+ {
+ "id": "f9355263",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ },
+ {
+ "id": "8807a9c4",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "expression": "C",
+ "disabled": false,
+ "having": [],
+ "stepInterval": 840,
+ "limit": null,
+ "orderBy": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag",
+ "id": "postgresql.table.name--string--tag--false"
+ }
+ ],
+ "legend": "Index scans",
+ "reduceTo": "sum"
+ },
+ {
+ "dataSource": "metrics",
+ "queryName": "D",
+ "aggregateOperator": "avg",
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.table.size--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.table.size",
+ "type": "Sum"
+ },
+ "timeAggregation": "rate",
+ "spaceAggregation": "sum",
+ "functions": [],
+ "filters": {
+ "items": [
+ {
+ "id": "4be865f1",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db_name}}"
+ ]
+ },
+ {
+ "id": "58200638",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table_name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "expression": "D",
+ "disabled": true,
+ "having": [],
+ "stepInterval": 840,
+ "limit": null,
+ "orderBy": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag",
+ "id": "postgresql.table.name--string--tag--false"
+ }
+ ],
+ "legend": "Table size",
+ "reduceTo": "sum"
+ }
+ ],
+ "queryFormulas": [
+ {
+ "queryName": "F1",
+ "expression": "D/1024/1024/1024",
+ "disabled": false,
+ "legend": "Table size (GB)"
+ }
+ ]
+ },
+ "id": "05e9c65b-a296-47c0-a802-2fca3320b07a",
+ "queryType": "builder"
+ },
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Table stats",
+ "yAxisUnit": "none",
+ "selectedLogFields": [],
+ "selectedTracesFields": []
+ },
+ {
+ "description": "",
+ "id": "7df9b6d2-8f7f-48d4-80d6-ae07d47746d6",
+ "panelTypes": "row",
+ "title": "Operations"
+ },
+ {
+ "description": "",
+ "id": "b437186f-d112-4fb9-bed5-5bea2b5f4b60",
+ "panelTypes": "row",
+ "title": "Locks"
+ },
+ {
+ "description": "",
+ "id": "3bd16024-b9ff-4f02-8107-1fd817604d5f",
+ "panelTypes": "row",
+ "title": "Connections"
+ },
+ {
+ "description": "",
+ "id": "4b94cfd8-7a28-46f9-a618-0a186908f0d5",
+ "panelTypes": "row",
+ "title": "Stats"
+ }
+ ],
+ "uuid": "149ad467-ba1b-421f-ad87-78f943cc7530"
+ }
diff --git a/pkg/query-service/app/integrations/builtin_integrations/aws_rds_postgres/assets/dashboards/overview_dot.json b/pkg/query-service/app/integrations/builtin_integrations/aws_rds_postgres/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..1b28ffc043
--- /dev/null
+++ b/pkg/query-service/app/integrations/builtin_integrations/aws_rds_postgres/assets/dashboards/overview_dot.json
@@ -0,0 +1,2782 @@
+{
+ "id": "aws_rds_postgres",
+ "description": "",
+ "layout": [
+ {
+ "h": 5,
+ "i": "8d22c6a7-b22e-4ad2-b242-e15de32ddc0f",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "94fe032e-3ffc-4cdc-aae6-f851fa47d957",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 5,
+ "i": "d73f2e63-33d8-40f7-a67b-861a628ba249",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "336bca83-50be-4937-b41b-ca8fde150f4d",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 5
+ },
+ {
+ "h": 5,
+ "i": "6807e631-4894-4de8-8a55-686c8fa08d4b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "d599a942-4dbf-4e29-a3ac-a3142399b557",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 10
+ },
+ {
+ "h": 5,
+ "i": "31c78945-ea1e-4ae1-b0fb-6f1c9de2c016",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "845ee717-bbd1-424c-8293-f49e76aa43b3",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 15
+ },
+ {
+ "h": 5,
+ "i": "c5189b72-1055-4d6a-b18d-fa23bd9c28d6",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 20
+ },
+ {
+ "h": 5,
+ "i": "ae099f6e-5d6c-4127-ac70-2da9741837d7",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 20
+ },
+ {
+ "h": 5,
+ "i": "03c1f0bd-6713-4355-b8e3-6ef781af32c2",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 0,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "37aabb43-fd8b-47c5-9444-0cd77f9ac435",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 4,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "c6939628-3c4c-48fb-a2cf-46f6cb358359",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 8,
+ "y": 25
+ },
+ {
+ "h": 5,
+ "i": "7854afc7-0cd5-4792-a760-be98a2e2f96b",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 0,
+ "y": 30
+ },
+ {
+ "h": 5,
+ "i": "8126584b-eaa9-4b79-ba8e-a00c394544d8",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 4,
+ "y": 30
+ },
+ {
+ "h": 5,
+ "i": "3d0a6717-1fd0-4810-b0e9-fe5190d5809f",
+ "moved": false,
+ "static": false,
+ "w": 4,
+ "x": 8,
+ "y": 30
+ },
+ {
+ "h": 5,
+ "i": "ffc39591-288f-4b28-87ee-43456d5d0667",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 35
+ }
+ ],
+ "panelMap": {},
+ "tags": [
+ "aws",
+ "rds",
+ "postgres"
+ ],
+ "title": "AWS RDS Postgres",
+ "uploadedGrafana": false,
+ "variables": {
+ "5ae02d7b-d201-4481-ad6f-ffb9d53e1b3e": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "This is the unique key that identifies a DB instance",
+ "id": "5ae02d7b-d201-4481-ad6f-ffb9d53e1b3e",
+ "modificationUUID": "1ecf21e3-488a-41e7-92f2-7dc75c9de49a",
+ "multiSelect": true,
+ "name": "dbinstance_identifier",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'dbinstance_identifier') as dbinstance_identifier\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name like 'aws_rds_database_connections_average'\nGROUP BY dbinstance_identifier",
+ "selectedValue": [
+ "integration-db-instance-instance-1",
+ "integration-db-instance-instance-2",
+ "integration-db-instance-instance-3",
+ "integration-test-postgres-instance-1",
+ "integration-test-postgres-instance-2",
+ "integration-test-postgres-instance-3",
+ "integration-testing-db-instance-1",
+ "integration-testing-db-instance-2",
+ "integration-testing-db-instance-3"
+ ],
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "version": "v4",
+ "widgets": [
+ {
+ "description": "The number of client network connections to the database instance.",
+ "fillSpans": false,
+ "id": "94fe032e-3ffc-4cdc-aae6-f851fa47d957",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_database_connections_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_database_connections_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "4e451ffc",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "b6816e82-3e9b-4dc6-9fc0-047ef50e47d4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "DatabaseConnections",
+ "yAxisUnit": "short"
+ },
+ {
+ "description": "The percentage of CPU utilization.",
+ "fillSpans": false,
+ "id": "8d22c6a7-b22e-4ad2-b242-e15de32ddc0f",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_cpuutilization_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_cpuutilization_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f0a48ddc",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0318116a-ba6b-405c-b2c0-8dfb321f3ad0",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPUUtilization",
+ "yAxisUnit": "percent"
+ },
+ {
+ "description": "The amount of available random access memory. This metric reports the value of the MemAvailable field of /proc/meminfo",
+ "fillSpans": false,
+ "id": "d599a942-4dbf-4e29-a3ac-a3142399b557",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_freeable_memory_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_freeable_memory_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "b738d056",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "5a1e0e0d-3190-4a38-8030-b48d24ebe0f1",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "FreeableMemory",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "c6939628-3c4c-48fb-a2cf-46f6cb358359",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_read_latency_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_read_latency_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d0ac5956",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "794a5db3-b75c-4354-a509-ab24b5daeba4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "ReadLatency",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "03c1f0bd-6713-4355-b8e3-6ef781af32c2",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_read_throughput_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_read_throughput_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "bdc062ed",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "6915105d-17eb-4863-8ccd-88c6a56d9ad7",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": "aws_rds_read_throughput_average"
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "ReadThroughput",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "37aabb43-fd8b-47c5-9444-0cd77f9ac435",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_read_iops_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_read_iops_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "74504cdf",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "0ab52186-6617-4f8b-a3fc-3778c09b6faf",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "ReadIOPS",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The amount of available storage space.",
+ "fillSpans": false,
+ "id": "6807e631-4894-4de8-8a55-686c8fa08d4b",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_free_storage_space_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_free_storage_space_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "3cfa657c",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "b7f7c9e9-0fdf-462e-b465-57025785e98f",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "FreeStorageSpace",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "7854afc7-0cd5-4792-a760-be98a2e2f96b",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_write_throughput_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_write_throughput_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "05330793",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "d6be5165-c686-412f-80f7-4a81a28cae7d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "WriteThroughput",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "8126584b-eaa9-4b79-ba8e-a00c394544d8",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_write_iops_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_write_iops_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "0606e3a2",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "253e440a-b13d-411c-a069-d4da1f4c84d7",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "WriteIOPS",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "ffc39591-288f-4b28-87ee-43456d5d0667",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "clickhouse_sql": [
+ {
+ "name": "A",
+ "legend": "",
+ "disabled": false,
+ "query": ""
+ }
+ ],
+ "promql": [
+ {
+ "name": "A",
+ "query": "",
+ "legend": "",
+ "disabled": false
+ }
+ ],
+ "builder": {
+ "queryData": [
+ {
+ "dataSource": "metrics",
+ "queryName": "A",
+ "aggregateOperator": "sum",
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_network_transmit_throughput_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_network_transmit_throughput_average",
+ "type": "Gauge"
+ },
+ "timeAggregation": "sum",
+ "spaceAggregation": "sum",
+ "functions": [],
+ "filters": {
+ "items": [
+ {
+ "id": "9a27ef98",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "expression": "A",
+ "disabled": true,
+ "having": [],
+ "stepInterval": 60,
+ "limit": null,
+ "orderBy": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag",
+ "id": "dbinstance_identifier--string--tag--false"
+ }
+ ],
+ "legend": "n/w transmit",
+ "reduceTo": "sum"
+ },
+ {
+ "dataSource": "metrics",
+ "queryName": "B",
+ "aggregateOperator": "sum",
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_network_receive_throughput_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_network_receive_throughput_average",
+ "type": "Gauge"
+ },
+ "timeAggregation": "sum",
+ "spaceAggregation": "sum",
+ "functions": [],
+ "filters": {
+ "items": [
+ {
+ "id": "df2ee1fc",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "expression": "B",
+ "disabled": true,
+ "having": [],
+ "stepInterval": 60,
+ "limit": null,
+ "orderBy": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag",
+ "id": "dbinstance_identifier--string--tag--false"
+ }
+ ],
+ "legend": "n/w receive",
+ "reduceTo": "sum"
+ }
+ ],
+ "queryFormulas": [
+ {
+ "queryName": "F1",
+ "expression": "A/1024/1024",
+ "disabled": false,
+ "legend": "n/w transmit (mb)"
+ },
+ {
+ "queryName": "F2",
+ "expression": "B/1024/1024",
+ "disabled": false,
+ "legend": "n/w receive (mb)"
+ }
+ ]
+ },
+ "id": "60b5a712-ac27-4b2e-a8d7-a180b389c780",
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network transmit/receive",
+ "yAxisUnit": "Bps"
+ },
+ {
+ "description": "The number of outstanding I/Os (read/write requests) waiting to access the disk.",
+ "fillSpans": false,
+ "id": "845ee717-bbd1-424c-8293-f49e76aa43b3",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_disk_queue_depth_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_disk_queue_depth_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "96c73381",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "afe73a96-1c56-451e-bca6-2c41c62d47a8",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "DiskQueueDepth",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The percentage of throughput credits remaining in the burst bucket of your RDS database. ",
+ "fillSpans": false,
+ "id": "ae099f6e-5d6c-4127-ac70-2da9741837d7",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_ebsiobalance__average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_ebsiobalance__average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "e88eb970",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "1d8b8b67-0646-4ebc-aa8b-1c10643ddfa0",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "EBSByteBalance%",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The percentage of I/O credits remaining in the burst bucket of your RDS database.",
+ "fillSpans": false,
+ "id": "31c78945-ea1e-4ae1-b0fb-6f1c9de2c016",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_ebsiobalance__average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_ebsiobalance__average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "c8d78684",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a0f7c676-ae5f-4db9-bb73-26dbb9db7fab",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "EBSIOBalance%",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "3d0a6717-1fd0-4810-b0e9-fe5190d5809f",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_write_latency_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_write_latency_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5b97fb87",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "7533cf12-7ee3-49e8-8fcd-c1f82ea317ab",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "WriteLatency",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "c5189b72-1055-4d6a-b18d-fa23bd9c28d6",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_swap_usage_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_swap_usage_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "afabe318",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "61ecb019-0fbf-44f1-a9db-995b86ee4805",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "SwapUsage",
+ "yAxisUnit": "decbytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "336bca83-50be-4937-b41b-ca8fde150f4d",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_checkpoint_lag_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_checkpoint_lag_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "abac3888",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "187a2eae-4fe4-4e47-b544-20404532cbb2",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CheckpointLag",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "d73f2e63-33d8-40f7-a67b-861a628ba249",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "aws_rds_replica_lag_average--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "aws_rds_replica_lag_average",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "47be5579",
+ "key": {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.dbinstance_identifier}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "dbinstance_identifier--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "dbinstance_identifier",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{dbinstance_identifier}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "avg"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "53e6ee05-bcbc-4f01-b061-a358371d92ff",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "ReplicaLag",
+ "yAxisUnit": "none"
+ }
+ ],
+ "uuid": "05e473e2-5733-4877-8b7f-cb311d4e9c0a"
+}
\ No newline at end of file
diff --git a/pkg/query-service/app/integrations/builtin_integrations/clickhouse/assets/dashboards/overview_dot.json b/pkg/query-service/app/integrations/builtin_integrations/clickhouse/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..28945e0081
--- /dev/null
+++ b/pkg/query-service/app/integrations/builtin_integrations/clickhouse/assets/dashboards/overview_dot.json
@@ -0,0 +1,7744 @@
+{
+ "id": "clickhouse-overview",
+ "description": "This dashboard provides a high-level overview of your Clickhouse Server hosts.",
+ "layout": [
+ {
+ "h": 3,
+ "i": "3b96004b-f356-4fc9-a7de-36af5eabad5d",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 9
+ },
+ {
+ "h": 3,
+ "i": "be48f124-96d1-4327-ae10-6f2c1b81fe50",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 12
+ },
+ {
+ "h": 3,
+ "i": "8eb1e295-d5e8-4007-acb1-a9ec385d6f4d",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 12
+ },
+ {
+ "h": 3,
+ "i": "7f36d404-8915-4bfb-ac93-b69a9ea1428a",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ },
+ {
+ "h": 3,
+ "i": "947053c4-b809-4241-9cb2-90e09868c2a9",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 3
+ },
+ {
+ "h": 3,
+ "i": "653248f0-9658-4be3-ba03-017d804e90c8",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 3,
+ "i": "a62fdaa8-9193-46c1-a951-8e3d5a6b1cf9",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 3,
+ "i": "1a1a3a6a-83d2-49db-aa4d-d6f166cc65f0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 3,
+ "i": "97a2c7bb-f135-412b-a006-167dcc1882c6",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 3
+ },
+ {
+ "h": 3,
+ "i": "486edfb2-02ce-45a3-ab89-06fce614edcf",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 15
+ },
+ {
+ "h": 3,
+ "i": "fcb693b5-6786-49e0-8007-4bc6009c70e2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 15
+ },
+ {
+ "h": 3,
+ "i": "581eb12e-8c92-4a8d-9800-0f72f350cfd1",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 9
+ }
+ ],
+ "tags": [],
+ "title": "Clickhouse Overview",
+ "variables": {
+ "eaf65de3-20bb-4dbc-9792-32a445f7be8f": {
+ "allSelected": false,
+ "customValue": "",
+ "description": "",
+ "id": "eaf65de3-20bb-4dbc-9792-32a445f7be8f",
+ "key": "eaf65de3-20bb-4dbc-9792-32a445f7be8f",
+ "modificationUUID": "2fbb477e-7775-427b-ab14-29b673dd216c",
+ "multiSelect": false,
+ "name": "host.name",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'host.name') AS host.name\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'ClickHouseMetrics_VersionInteger' and __normalized=false \nGROUP BY host.name",
+ "selectedValue": "",
+ "showALLOption": false,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "uploadedGrafana": false,
+ "version": "v4",
+ "widgets": [
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "a62fdaa8-9193-46c1-a951-8e3d5a6b1cf9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_Query--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_Query",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f39fa24e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "feac81df",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "c8516e54",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_AsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_AsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "fabac011",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9a78e4be-1f4d-4104-b97b-26ba927b100e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rate of Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "1a1a3a6a-83d2-49db-aa4d-d6f166cc65f0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7d653034",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedSelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedSelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "18cd347e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "96af023f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedAsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedAsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "1ec63ffc",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "536cb476-340c-4afb-a5cc-538ebe419f8d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Failed Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "653248f0-9658-4be3-ba03-017d804e90c8",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertedRows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertedRows",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a7d9e1d3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Inserted Rows",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "ee3de02b-cb8b-4ebc-8041-245f10943ca6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Inserted Rows",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "a62fdaa8-9193-46c1-a951-8e3d5a6b1cf9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_Query--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_Query",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f39fa24e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "feac81df",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "c8516e54",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_AsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_AsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "fabac011",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9a78e4be-1f4d-4104-b97b-26ba927b100e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rate of Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "1a1a3a6a-83d2-49db-aa4d-d6f166cc65f0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7d653034",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedSelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedSelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "18cd347e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "96af023f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedAsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedAsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "1ec63ffc",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "536cb476-340c-4afb-a5cc-538ebe419f8d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Failed Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "97a2c7bb-f135-412b-a006-167dcc1882c6",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_QueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_QueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6fd64e65",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "All Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "ce64d4b6",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "ffcd0e01",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_OtherQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_OtherQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "da05a175",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Other Queries (not select or insert)",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e1a1e8b1-60c0-40b6-8391-151d79e91325",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Total Query Time",
+ "yAxisUnit": "µs"
+ },
+ {
+ "description": "Writes rejected with \"Too many parts\" for inserts or \"Too many mutations\" for mutations",
+ "fillSpans": false,
+ "id": "7f36d404-8915-4bfb-ac93-b69a9ea1428a",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_RejectedInserts--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_RejectedInserts",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "8c903ae3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Rejected Inserts ('Too many parts')",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_RejectedMutations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_RejectedMutations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "74059430",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Rejected Mutations ('Too many mutations')",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a5bd4adb-1610-43a1-a11e-72dc4e76416d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rejected Writes",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "a62fdaa8-9193-46c1-a951-8e3d5a6b1cf9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_Query--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_Query",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f39fa24e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "feac81df",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "c8516e54",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_AsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_AsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "fabac011",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9a78e4be-1f4d-4104-b97b-26ba927b100e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rate of Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "1a1a3a6a-83d2-49db-aa4d-d6f166cc65f0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7d653034",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedSelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedSelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "18cd347e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "96af023f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedAsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedAsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "1ec63ffc",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "536cb476-340c-4afb-a5cc-538ebe419f8d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Failed Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "653248f0-9658-4be3-ba03-017d804e90c8",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertedRows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertedRows",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a7d9e1d3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Inserted Rows",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "ee3de02b-cb8b-4ebc-8041-245f10943ca6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Inserted Rows",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "a62fdaa8-9193-46c1-a951-8e3d5a6b1cf9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_Query--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_Query",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f39fa24e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "feac81df",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "c8516e54",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_AsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_AsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "fabac011",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9a78e4be-1f4d-4104-b97b-26ba927b100e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rate of Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "1a1a3a6a-83d2-49db-aa4d-d6f166cc65f0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7d653034",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedSelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedSelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "18cd347e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "96af023f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedAsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedAsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "1ec63ffc",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "536cb476-340c-4afb-a5cc-538ebe419f8d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Failed Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "97a2c7bb-f135-412b-a006-167dcc1882c6",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_QueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_QueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6fd64e65",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "All Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "ce64d4b6",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "ffcd0e01",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_OtherQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_OtherQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "da05a175",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Other Queries (not select or insert)",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e1a1e8b1-60c0-40b6-8391-151d79e91325",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Total Query Time",
+ "yAxisUnit": "µs"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "8eb1e295-d5e8-4007-acb1-a9ec385d6f4d",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseMetrics_MemoryTracking--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseMetrics_MemoryTracking",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5b1aee4f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Memory Used",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "avg",
+ "stepInterval": 60,
+ "timeAggregation": "max"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "3bc4df66-32bd-42fe-9744-71a678107ebb",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Memory Usage",
+ "yAxisUnit": "bytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "a62fdaa8-9193-46c1-a951-8e3d5a6b1cf9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_Query--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_Query",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f39fa24e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "feac81df",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "c8516e54",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_AsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_AsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "fabac011",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9a78e4be-1f4d-4104-b97b-26ba927b100e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rate of Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "1a1a3a6a-83d2-49db-aa4d-d6f166cc65f0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7d653034",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedSelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedSelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "18cd347e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "96af023f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedAsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedAsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "1ec63ffc",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "536cb476-340c-4afb-a5cc-538ebe419f8d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Failed Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "653248f0-9658-4be3-ba03-017d804e90c8",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertedRows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertedRows",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a7d9e1d3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Inserted Rows",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "ee3de02b-cb8b-4ebc-8041-245f10943ca6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Inserted Rows",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "a62fdaa8-9193-46c1-a951-8e3d5a6b1cf9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_Query--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_Query",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f39fa24e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "feac81df",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "c8516e54",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_AsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_AsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "fabac011",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9a78e4be-1f4d-4104-b97b-26ba927b100e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rate of Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "1a1a3a6a-83d2-49db-aa4d-d6f166cc65f0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7d653034",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedSelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedSelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "18cd347e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "96af023f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedAsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedAsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "1ec63ffc",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "536cb476-340c-4afb-a5cc-538ebe419f8d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Failed Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "97a2c7bb-f135-412b-a006-167dcc1882c6",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_QueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_QueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6fd64e65",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "All Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "ce64d4b6",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "ffcd0e01",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_OtherQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_OtherQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "da05a175",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Other Queries (not select or insert)",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e1a1e8b1-60c0-40b6-8391-151d79e91325",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Total Query Time",
+ "yAxisUnit": "µs"
+ },
+ {
+ "description": "Writes rejected with \"Too many parts\" for inserts or \"Too many mutations\" for mutations",
+ "fillSpans": false,
+ "id": "7f36d404-8915-4bfb-ac93-b69a9ea1428a",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_RejectedInserts--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_RejectedInserts",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "8c903ae3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Rejected Inserts",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_RejectedMutations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_RejectedMutations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "74059430",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Rejected Mutations",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "a5bd4adb-1610-43a1-a11e-72dc4e76416d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rejected Writes",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "a62fdaa8-9193-46c1-a951-8e3d5a6b1cf9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_Query--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_Query",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f39fa24e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "feac81df",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "c8516e54",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_AsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_AsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "fabac011",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9a78e4be-1f4d-4104-b97b-26ba927b100e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rate of Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "1a1a3a6a-83d2-49db-aa4d-d6f166cc65f0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7d653034",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedSelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedSelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "18cd347e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "96af023f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedAsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedAsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "1ec63ffc",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "536cb476-340c-4afb-a5cc-538ebe419f8d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Failed Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "653248f0-9658-4be3-ba03-017d804e90c8",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertedRows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertedRows",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a7d9e1d3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Inserted Rows",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "ee3de02b-cb8b-4ebc-8041-245f10943ca6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Inserted Rows",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "a62fdaa8-9193-46c1-a951-8e3d5a6b1cf9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_Query--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_Query",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "f39fa24e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "feac81df",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "c8516e54",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_AsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_AsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "fabac011",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "9a78e4be-1f4d-4104-b97b-26ba927b100e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Rate of Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "1a1a3a6a-83d2-49db-aa4d-d6f166cc65f0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "7d653034",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedSelectQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedSelectQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "18cd347e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "96af023f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_FailedAsyncInsertQuery--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_FailedAsyncInsertQuery",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "1ec63ffc",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Async Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "536cb476-340c-4afb-a5cc-538ebe419f8d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Failed Queries",
+ "yAxisUnit": "cps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "97a2c7bb-f135-412b-a006-167dcc1882c6",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_QueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_QueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "6fd64e65",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "All Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_SelectQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_SelectQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "ce64d4b6",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Select Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "ffcd0e01",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Insert Queries",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_OtherQueryTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_OtherQueryTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "da05a175",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Other Queries (not select or insert)",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e1a1e8b1-60c0-40b6-8391-151d79e91325",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Total Query Time",
+ "yAxisUnit": "µs"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "947053c4-b809-4241-9cb2-90e09868c2a9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_InsertedBytes--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_InsertedBytes",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "e9d17ef7",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Inserted Data",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "781619c1-2da3-464b-b2af-206645d8da71",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Inserted Data",
+ "yAxisUnit": "binBps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "486edfb2-02ce-45a3-ab89-06fce614edcf",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_NetworkReceiveBytes--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_NetworkReceiveBytes",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "cce0dcd3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Received",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_NetworkSendBytes--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_NetworkSendBytes",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "a29a23a0",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Sent",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "57e90fd3-ddc9-44a3-8349-ddcb543c0d6e",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network Traffic",
+ "yAxisUnit": "binBps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "fcb693b5-6786-49e0-8007-4bc6009c70e2",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_OSCPUVirtualTimeMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_OSCPUVirtualTimeMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d2c354fa",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "OSCPUVirtualTimeMicroseconds",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_OSCPUWaitMicroseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_OSCPUWaitMicroseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "f6af7585",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "OSCPUWaitMicroseconds",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "e1dda6e4-1032-4e95-b7ec-fb292e3d6823",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "CPU",
+ "yAxisUnit": "µs"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "be48f124-96d1-4327-ae10-6f2c1b81fe50",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_OSReadBytes--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_OSReadBytes",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "75a5ec5f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Read",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_OSWriteBytes--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_OSWriteBytes",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "98263fc3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Write",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "d26049ee-35ff-4f30-b359-6f0d00bb8600",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Disk",
+ "yAxisUnit": "binBps"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "581eb12e-8c92-4a8d-9800-0f72f350cfd1",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_MergesTimeMilliseconds--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_MergesTimeMilliseconds",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "1ac0d1d1",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Total Time Spent on Merges",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "df0e8faf-801a-4e24-a690-10a6d11651e0",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Total Time spent for Background Merges",
+ "yAxisUnit": "ms"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "3b96004b-f356-4fc9-a7de-36af5eabad5d",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "ClickHouseProfileEvents_Merge--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "ClickHouseProfileEvents_Merge",
+ "type": "Sum"
+ },
+ "aggregateOperator": "rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "61c9d724",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "{{.host.name}}"
+ }
+ ],
+ "op": "AND"
+ },
+ "functions": [],
+ "groupBy": [],
+ "having": [],
+ "legend": "Number of merges launched",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "avg",
+ "spaceAggregation": "sum",
+ "stepInterval": 60,
+ "timeAggregation": "rate"
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "cbeb3c56-5a43-467e-b130-b1cb11c6ee4f",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "selectedLogFields": [
+ {
+ "dataType": "string",
+ "name": "body",
+ "type": ""
+ },
+ {
+ "dataType": "string",
+ "name": "timestamp",
+ "type": ""
+ }
+ ],
+ "selectedTracesFields": [
+ {
+ "dataType": "string",
+ "id": "serviceName--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "serviceName",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "name--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "name",
+ "type": "tag"
+ },
+ {
+ "dataType": "float64",
+ "id": "durationNano--float64--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "durationNano",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "httpMethod--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "httpMethod",
+ "type": "tag"
+ },
+ {
+ "dataType": "string",
+ "id": "responseStatusCode--string--tag--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "responseStatusCode",
+ "type": "tag"
+ }
+ ],
+ "softMax": 0,
+ "softMin": 0,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Background Merges Launched",
+ "yAxisUnit": "cps"
+ }
+ ],
+ "uuid": "e74aeb83-ac4b-4313-8a97-216b62c8fc59"
+}
diff --git a/pkg/query-service/app/integrations/builtin_integrations/mongo/assets/dashboards/overview_dot.json b/pkg/query-service/app/integrations/builtin_integrations/mongo/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..777302d96f
--- /dev/null
+++ b/pkg/query-service/app/integrations/builtin_integrations/mongo/assets/dashboards/overview_dot.json
@@ -0,0 +1,797 @@
+{
+ "id": "mongo-overview",
+ "description": "This dashboard provides a high-level overview of your MongoDB. It includes read/write performance, most-used replicas, collection metrics etc...",
+ "layout": [
+ {
+ "h": 3,
+ "i": "0c3d2b15-89be-4d62-a821-b26d93332ed3",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 3
+ },
+ {
+ "h": 3,
+ "i": "14504a3c-4a05-4d22-bab3-e22e94f51380",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 6
+ },
+ {
+ "h": 3,
+ "i": "dcfb3829-c3f2-44bb-907d-8dc8a6dc4aab",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 3
+ },
+ {
+ "h": 3,
+ "i": "bfc9e80b-02bf-4122-b3da-3dd943d35012",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 3,
+ "i": "4c07a7d2-893a-46c2-bcdb-a19b6efeac3a",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 3,
+ "i": "a5a64eec-1034-4aa6-8cb1-05673c4426c6",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 6
+ },
+ {
+ "h": 3,
+ "i": "503af589-ef4d-4fe3-8934-c8f7eb480d9a",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 9
+ }
+ ],
+ "name": "",
+ "tags": [
+ "mongo",
+ "database"
+ ],
+ "title": "Mongo overview",
+ "variables": {
+ "a2c21714-a814-4d31-9b56-7367c3208801": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "List of hosts sending mongo metrics",
+ "id": "a2c21714-a814-4d31-9b56-7367c3208801",
+ "modificationUUID": "448e675a-4531-45b1-b434-a9ee809470d6",
+ "multiSelect": true,
+ "name": "host.name",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'host.name') AS `host.name`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'mongodb_memory_usage'\nGROUP BY `host.name`",
+ "selectedValue": [
+ "Srikanths-MacBook-Pro.local"
+ ],
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "widgets": [
+ {
+ "description": "Total number of operations",
+ "fillSpans": false,
+ "id": "4c07a7d2-893a-46c2-bcdb-a19b6efeac3a",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mongodb.operation.count--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mongodb.operation.count",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a468a30b",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{operation}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "7da5d899-8b06-4139-9a89-47baf9551ff8",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Operations count",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The total time spent performing operations.",
+ "fillSpans": false,
+ "id": "bfc9e80b-02bf-4122-b3da-3dd943d35012",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mongodb.operation.time--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mongodb.operation.time",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "31be3166",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{operation}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "2ca35957-894a-46ae-a2a6-95d7e400d8e1",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Total operations time",
+ "yAxisUnit": "ms"
+ },
+ {
+ "description": "The number of cache operations",
+ "fillSpans": false,
+ "id": "dcfb3829-c3f2-44bb-907d-8dc8a6dc4aab",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mongodb.cache.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mongodb.cache.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "01b45814",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "type--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "type",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{type}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "bb439198-dcf5-4767-b0d0-ab5785159b8d",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Cache operations",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "14504a3c-4a05-4d22-bab3-e22e94f51380",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mongodb.operation.latency.time--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mongodb.operation.latency.time",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "2e165319",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "read"
+ },
+ {
+ "id": "888e920b",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "Latency",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "4a9cafe8-778b-476c-b825-c04e165bf285",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Read latency",
+ "yAxisUnit": "µs"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "a5a64eec-1034-4aa6-8cb1-05673c4426c6",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mongodb.operation.latency.time--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mongodb.operation.latency.time",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "53b37ca7",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "9862c46c",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "write"
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "Latency",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "446827eb-a4f2-4ff3-966b-fb65288c983b",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Write latency",
+ "yAxisUnit": "µs"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "503af589-ef4d-4fe3-8934-c8f7eb480d9a",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mongodb.operation.latency.time--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mongodb.operation.latency.time",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "c33ad4b6",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "c70ecfd0",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "command"
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "Latency",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "7b7b977d-0921-4552-8cfe-d82dfde63ef4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Command latency",
+ "yAxisUnit": "µs"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "0c3d2b15-89be-4d62-a821-b26d93332ed3",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mongodb.network.io.receive--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mongodb.network.io.receive",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "5c9d7fe3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Bytes received :: {{host.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "mongodb.network.io.transmit--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "mongodb.network.io.transmit",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "96520885",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Bytes transmitted :: {{host.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "41eea5bc-f9cf-45c2-92fb-ef226d6b540b",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Network IO",
+ "yAxisUnit": "bytes"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/integrations/builtin_integrations/postgres/assets/dashboards/overview_dot.json b/pkg/query-service/app/integrations/builtin_integrations/postgres/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..f781e93cc4
--- /dev/null
+++ b/pkg/query-service/app/integrations/builtin_integrations/postgres/assets/dashboards/overview_dot.json
@@ -0,0 +1,1869 @@
+{
+ "id": "postgres-overview",
+ "description": "This dashboard provides a high-level overview of your PostgreSQL databases. It includes replication, locks, and throughput etc...",
+ "layout": [
+ {
+ "h": 3,
+ "i": "9552123d-6265-48a7-8624-3f4a3fc3c9c0",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 18
+ },
+ {
+ "h": 3,
+ "i": "d7838815-4f5b-4454-86fd-f658b201f3a9",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 15
+ },
+ {
+ "h": 3,
+ "i": "f9a6f683-7455-4643-acc8-467cc5ea52cf",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 15
+ },
+ {
+ "h": 3,
+ "i": "8638a199-20a0-4255-b0a2-3b1ba06c485b",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 3,
+ "y": 12
+ },
+ {
+ "h": 3,
+ "i": "e9341e70-ccb3-47fc-af95-56ba8942c4f2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 9
+ },
+ {
+ "h": 3,
+ "i": "6b700035-e3c2-4c48-99fa-ebfd6202eed3",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 9
+ },
+ {
+ "h": 3,
+ "i": "bada7864-1d23-4d49-a868-c6b8a93c738f",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 3,
+ "y": 6
+ },
+ {
+ "h": 3,
+ "i": "191d09a6-40b0-4de8-a5b0-aa4254454b99",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 3,
+ "i": "fa941c00-ce19-49cc-baf2-c38598767dee",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 3,
+ "i": "114fcf80-e1de-4716-b1aa-0e0738dba10e",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 3
+ },
+ {
+ "h": 3,
+ "i": "667428ef-9b9a-4e91-bd1e-938e0dc1ff32",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 3
+ }
+ ],
+ "name": "",
+ "tags": [
+ "postgres",
+ "database"
+ ],
+ "title": "Postgres overview",
+ "variables": {
+ "4250ef7b-8f42-4a24-902a-a764d070b92d": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "List of hosts sending Postgres metrics",
+ "id": "4250ef7b-8f42-4a24-902a-a764d070b92d",
+ "key": "4250ef7b-8f42-4a24-902a-a764d070b92d",
+ "modificationUUID": "4427b655-c8d2-40ce-84ed-7cb058bd3041",
+ "multiSelect": true,
+ "name": "host.name",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'host.name') AS `host.name`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'postgresql.operations'\nGROUP BY `host.name`",
+ "selectedValue": [
+ "Srikanths-MacBook-Pro.local"
+ ],
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ },
+ "8ecaee70-640f-46fd-83d9-a4fd18bc66e6": {
+ "customValue": "",
+ "description": "List of tables",
+ "id": "8ecaee70-640f-46fd-83d9-a4fd18bc66e6",
+ "modificationUUID": "a51321cd-47a2-470a-8df4-372e5bb36f2c",
+ "multiSelect": true,
+ "name": "table.name",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'postgresql.table.name') AS `table.name`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'postgresql.operations' AND JSONExtractString(labels, 'postgresql.database.name') IN {{.db.name}}\nGROUP BY `table.name`",
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY",
+ "selectedValue": [
+ "public.activations",
+ "public.licenses",
+ "public.plans",
+ "public.subscription_items",
+ "public.subscriptions",
+ "public.trials",
+ "public.usage"
+ ],
+ "allSelected": true
+ },
+ "c66d1581-e5e1-440d-8ff6-ebcf078ab6dd": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "List of databases",
+ "id": "c66d1581-e5e1-440d-8ff6-ebcf078ab6dd",
+ "key": "c66d1581-e5e1-440d-8ff6-ebcf078ab6dd",
+ "modificationUUID": "564a3f43-98f8-4189-b5e4-dcb518d73852",
+ "multiSelect": true,
+ "name": "db.name",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'postgresql.database.name') AS `db.name`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'postgresql.operations'\nGROUP BY `db.name`",
+ "selectedValue": [
+ "postgres"
+ ],
+ "showALLOption": true,
+ "sort": "DISABLED",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "widgets": [
+ {
+ "description": "The average number of db insert operations.",
+ "fillSpans": false,
+ "id": "191d09a6-40b0-4de8-a5b0-aa4254454b99",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "c1dff946",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "ins"
+ },
+ {
+ "id": "0cd6dc8f",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "2e60e171",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "bf48ac4c-bc0c-41a0-87f4-6f8ae7888d1f",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Inserts",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The average number of db update operations.",
+ "fillSpans": false,
+ "id": "fa941c00-ce19-49cc-baf2-c38598767dee",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "98463ec9",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "upd"
+ },
+ {
+ "id": "47db4e8e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "64020332",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "34a6ac3a-b7f6-4b5f-a084-a44378033d82",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Updates",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The average number of db delete operations.",
+ "fillSpans": false,
+ "id": "114fcf80-e1de-4716-b1aa-0e0738dba10e",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "62738de4",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "del"
+ },
+ {
+ "id": "d18471e2",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "9d153899",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "734393d1-76ed-4f4f-bef8-0a91d27ebec4",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Deleted",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The average number of db heap-only update operations.",
+ "fillSpans": false,
+ "id": "667428ef-9b9a-4e91-bd1e-938e0dc1ff32",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "a91e35c4",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "hot_upd"
+ },
+ {
+ "id": "2b419378",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "7b4a29a2",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "f43c2d19-4abc-4f5e-881b-db7add4a870a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Heap updates",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "bada7864-1d23-4d49-a868-c6b8a93c738f",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d6aeccf7",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "ins"
+ },
+ {
+ "id": "4004a127",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "ee4e9344",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Inserted",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "a12cceed",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "upd"
+ },
+ {
+ "id": "11735104",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "2d542482",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Updated",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.operations--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.operations",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "1bca3e46",
+ "key": {
+ "dataType": "string",
+ "id": "operation--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "operation",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "del"
+ },
+ {
+ "id": "3631755d",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "44ffc874",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Deleted",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "5056105b-1c30-4d27-8187-64457f2a1ec6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Operation by database",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "The number of database locks.",
+ "fillSpans": false,
+ "id": "6b700035-e3c2-4c48-99fa-ebfd6202eed3",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.database.locks--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.database.locks",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "527a3124",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "mode--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "mode",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{mode}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "877b0df3-9ae3-455e-ad27-bc3aa40b3f4c",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Locks by lock mode",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "e9341e70-ccb3-47fc-af95-56ba8942c4f2",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.deadlocks--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.deadlocks",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "ff14f172",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "efb83717",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "5056105b-1c30-4d27-8187-64457f2a1ec6",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Deadlocks count",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "8638a199-20a0-4255-b0a2-3b1ba06c485b",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.backends--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.backends",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "ed335b00",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "20d2a4c5",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.database.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "205b99a0-2f1c-4bd2-9ba0-cc2da6ef247a",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Connections per db",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "f9a6f683-7455-4643-acc8-467cc5ea52cf",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.rows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.rows",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "70786905",
+ "key": {
+ "dataType": "string",
+ "id": "state--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "state",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "dead"
+ },
+ {
+ "id": "810e39a9",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "3e5ef839",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ },
+ {
+ "id": "9e913563",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "Dead rows",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "cc7452c8-118b-4676-959e-7062bafc41ee",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Dead rows",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "d7838815-4f5b-4454-86fd-f658b201f3a9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.index.scans--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.index.scans",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "da04d826",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "590332a7",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ },
+ {
+ "id": "171b9516",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.index.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.index.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "{{postgresql.index.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "2c6b630b-8bd9-4001-815b-f2b1f439a9dd",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Index scans by index",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "9552123d-6265-48a7-8624-3f4a3fc3c9c0",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "table",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.rows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.rows",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "83f9cab9",
+ "key": {
+ "dataType": "string",
+ "id": "state--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "state",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "dead"
+ },
+ {
+ "id": "2a0284c2",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "c2aaf758",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ },
+ {
+ "id": "a603fda9",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Dead rows",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.rows--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.rows",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "82f1f0f5",
+ "key": {
+ "dataType": "string",
+ "id": "state--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "state",
+ "type": "tag"
+ },
+ "op": "=",
+ "value": "live"
+ },
+ {
+ "id": "14de7a06",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "0a88a27a",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ },
+ {
+ "id": "4417218d",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Live rows",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.index.scans--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.index.scans",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "C",
+ "filters": {
+ "items": [
+ {
+ "id": "22795c15",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "d7e7c193",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ },
+ {
+ "id": "d3ae1dbe",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Index scans",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "C",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "postgresql.table.size--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "postgresql.table.size",
+ "type": "Sum"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "D",
+ "filters": {
+ "items": [
+ {
+ "id": "48c436ab",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ },
+ {
+ "id": "cc617789",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.database.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.database.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.db.name}}"
+ ]
+ },
+ {
+ "id": "b4029d50",
+ "key": {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.table.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "postgresql.table.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "postgresql.table.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Table size",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "D",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "26a9dcbf-4fc7-4ddd-b786-2078def1f462",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Table stats",
+ "yAxisUnit": "none"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/integrations/builtin_integrations/redis/assets/dashboards/overview_dot.json b/pkg/query-service/app/integrations/builtin_integrations/redis/assets/dashboards/overview_dot.json
new file mode 100644
index 0000000000..dacf4db862
--- /dev/null
+++ b/pkg/query-service/app/integrations/builtin_integrations/redis/assets/dashboards/overview_dot.json
@@ -0,0 +1,924 @@
+{
+ "id": "redis-overview",
+ "description": "This dashboard shows the Redis instance overview. It includes latency, hit/miss rate, connections, and memory information.\n",
+ "layout": [
+ {
+ "h": 3,
+ "i": "d4c164bc-8fc2-4dbc-aadd-8d17479ca649",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 9
+ },
+ {
+ "h": 3,
+ "i": "2fbaef0d-3cdb-4ce3-aa3c-9bbbb41786d9",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 3,
+ "y": 6
+ },
+ {
+ "h": 3,
+ "i": "f5ee1511-0d2b-4404-9ce0-e991837decc2",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 3
+ },
+ {
+ "h": 3,
+ "i": "b19c7058-b806-4ea2-974a-ca555b168991",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 3
+ },
+ {
+ "h": 3,
+ "i": "bf0deeeb-e926-4234-944c-82bacd96af47",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 0
+ },
+ {
+ "h": 3,
+ "i": "a77227c7-16f5-4353-952e-b183c715a61c",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 0
+ },
+ {
+ "h": 3,
+ "i": "9698cee2-b1f3-4c0b-8c9f-3da4f0e05f17",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 9
+ },
+ {
+ "h": 3,
+ "i": "64a5f303-d7db-44ff-9a0e-948e5c653320",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 0,
+ "y": 12
+ },
+ {
+ "h": 3,
+ "i": "3e80a918-69af-4c9a-bc57-a94e1d41b05c",
+ "moved": false,
+ "static": false,
+ "w": 6,
+ "x": 6,
+ "y": 12
+ }
+ ],
+ "name": "",
+ "tags": [
+ "redis",
+ "database"
+ ],
+ "title": "Redis overview",
+ "variables": {
+ "94f19b3c-ad9f-4b47-a9b2-f312c09fa965": {
+ "allSelected": true,
+ "customValue": "",
+ "description": "List of hosts sending Redis metrics",
+ "id": "94f19b3c-ad9f-4b47-a9b2-f312c09fa965",
+ "key": "94f19b3c-ad9f-4b47-a9b2-f312c09fa965",
+ "modificationUUID": "4c5b0c03-9cbc-425b-8d8e-7152e5c39ba8",
+ "multiSelect": true,
+ "name": "host.name",
+ "order": 0,
+ "queryValue": "SELECT JSONExtractString(labels, 'host.name') AS `host.name`\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE metric_name = 'redis.cpu.time'\nGROUP BY `host.name`",
+ "selectedValue": [
+ "Srikanths-MacBook-Pro.local"
+ ],
+ "showALLOption": true,
+ "sort": "ASC",
+ "textboxValue": "",
+ "type": "QUERY"
+ }
+ },
+ "widgets": [
+ {
+ "description": "Rate successful lookup of keys in the main dictionary",
+ "fillSpans": false,
+ "id": "a77227c7-16f5-4353-952e-b183c715a61c",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "redis.keyspace.hits--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "redis.keyspace.hits",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "e99669ea",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "Hit/s across all hosts",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "42c9c117-bfaf-49f7-b528-aad099392295",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Hits/s",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "Number of clients pending on a blocking call",
+ "fillSpans": false,
+ "id": "bf0deeeb-e926-4234-944c-82bacd96af47",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "redis.clients.blocked--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "redis.clients.blocked",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "97247f25",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "Blocked clients across all hosts",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "b77a9e11-fb98-4a95-88a8-c3ad25c14369",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Clients blocked",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "b19c7058-b806-4ea2-974a-ca555b168991",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "",
+ "id": "redis.db.keys------false",
+ "isColumn": false,
+ "key": "redis.db.keys",
+ "type": ""
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "b77a9e11-fb98-4a95-88a8-c3ad25c14369",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Keyspace Keys",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "Number of changes since the last dump",
+ "fillSpans": false,
+ "id": "f5ee1511-0d2b-4404-9ce0-e991837decc2",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "redis.rdb.changes_since_last_save--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "redis.rdb.changes_since_last_save",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "d4aef346",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "Number of unsaved changes",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "32cedddf-606d-4de1-8c1d-4b7049e6430c",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Unsaved changes",
+ "yAxisUnit": "none"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "2fbaef0d-3cdb-4ce3-aa3c-9bbbb41786d9",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "redis.commands--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "redis.commands",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "458dc402",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [],
+ "having": [],
+ "legend": "ops/s",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "c70de4dd-a68a-42df-a249-6610c296709c",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Command/s",
+ "yAxisUnit": "ops"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "d4c164bc-8fc2-4dbc-aadd-8d17479ca649",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "redis.memory.used--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "redis.memory.used",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "394a537e",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Used::{{host.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ },
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "redis.maxmemory--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "redis.maxmemory",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "max",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "B",
+ "filters": {
+ "items": [
+ {
+ "id": "0c0754da",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Max::{{host.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "B",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "2f47df76-f09e-4152-8623-971f0fe66bfe",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Memory usage",
+ "yAxisUnit": "bytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "9698cee2-b1f3-4c0b-8c9f-3da4f0e05f17",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "redis.memory.rss--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "redis.memory.rss",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "sum",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "4dc9ae49",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Rss::{{host.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "fddd043c-1385-481c-9f4c-381f261e1dd9",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "RSS Memory",
+ "yAxisUnit": "bytes"
+ },
+ {
+ "description": "",
+ "fillSpans": false,
+ "id": "64a5f303-d7db-44ff-9a0e-948e5c653320",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "redis.memory.fragmentation_ratio--float64--Gauge--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "redis.memory.fragmentation_ratio",
+ "type": "Gauge"
+ },
+ "aggregateOperator": "avg",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "79dc25f3",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Rss::{{host.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "3e802b07-0249-4d79-a5c7-6580ab535ad0",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Fragmentation ratio",
+ "yAxisUnit": "short"
+ },
+ {
+ "description": "Number of evicted keys due to maxmemory limit",
+ "fillSpans": false,
+ "id": "3e80a918-69af-4c9a-bc57-a94e1d41b05c",
+ "isStacked": false,
+ "nullZeroValues": "zero",
+ "opacity": "1",
+ "panelTypes": "graph",
+ "query": {
+ "builder": {
+ "queryData": [
+ {
+ "aggregateAttribute": {
+ "dataType": "float64",
+ "id": "redis.keys.evicted--float64--Sum--true",
+ "isColumn": true,
+ "isJSON": false,
+ "key": "redis.keys.evicted",
+ "type": "Sum"
+ },
+ "aggregateOperator": "sum_rate",
+ "dataSource": "metrics",
+ "disabled": false,
+ "expression": "A",
+ "filters": {
+ "items": [
+ {
+ "id": "53d189ac",
+ "key": {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ },
+ "op": "in",
+ "value": [
+ "{{.host.name}}"
+ ]
+ }
+ ],
+ "op": "AND"
+ },
+ "groupBy": [
+ {
+ "dataType": "string",
+ "id": "host.name--string--tag--false",
+ "isColumn": false,
+ "isJSON": false,
+ "key": "host.name",
+ "type": "tag"
+ }
+ ],
+ "having": [],
+ "legend": "Rss::{{host.name}}",
+ "limit": null,
+ "orderBy": [],
+ "queryName": "A",
+ "reduceTo": "sum",
+ "stepInterval": 60
+ }
+ ],
+ "queryFormulas": []
+ },
+ "clickhouse_sql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "id": "15d1d9d7-eb10-464b-aa7b-33ff211996f7",
+ "promql": [
+ {
+ "disabled": false,
+ "legend": "",
+ "name": "A",
+ "query": ""
+ }
+ ],
+ "queryType": "builder"
+ },
+ "softMax": null,
+ "softMin": null,
+ "thresholds": [],
+ "timePreferance": "GLOBAL_TIME",
+ "title": "Eviction rate",
+ "yAxisUnit": "short"
+ }
+ ]
+}
diff --git a/pkg/query-service/app/integrations/manager_test.go b/pkg/query-service/app/integrations/manager_test.go
index c78413c0b7..39c9d1ff88 100644
--- a/pkg/query-service/app/integrations/manager_test.go
+++ b/pkg/query-service/app/integrations/manager_test.go
@@ -3,12 +3,18 @@ package integrations
import (
"context"
"testing"
+ "time"
- "github.com/SigNoz/signoz/pkg/emailing"
- "github.com/SigNoz/signoz/pkg/emailing/noopemailing"
+ "github.com/SigNoz/signoz/pkg/alertmanager"
+ "github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerserver"
+ "github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
+ "github.com/SigNoz/signoz/pkg/emailing/emailingtest"
"github.com/SigNoz/signoz/pkg/instrumentation/instrumentationtest"
"github.com/SigNoz/signoz/pkg/modules/organization/implorganization"
- "github.com/SigNoz/signoz/pkg/modules/user/impluser"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/sharder/noopsharder"
+ "github.com/SigNoz/signoz/pkg/signoz"
+ "github.com/SigNoz/signoz/pkg/types/authtypes"
_ "github.com/mattn/go-sqlite3"
"github.com/stretchr/testify/require"
)
@@ -19,11 +25,14 @@ func TestIntegrationLifecycle(t *testing.T) {
mgr, store := NewTestIntegrationsManager(t)
ctx := context.Background()
- organizationModule := implorganization.NewModule(implorganization.NewStore(store))
providerSettings := instrumentationtest.New().ToProviderSettings()
- emailing, _ := noopemailing.New(context.Background(), providerSettings, emailing.Config{})
- userModule := impluser.NewModule(impluser.NewStore(store, providerSettings), nil, emailing, providerSettings)
- user, apiErr := createTestUser(organizationModule, userModule)
+ sharder, _ := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(store), sharder)
+ alertmanager, _ := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{Provider: "signoz", Signoz: alertmanager.Signoz{PollInterval: 10 * time.Second, Config: alertmanagerserver.NewConfig()}}, store, orgGetter)
+ jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
+ emailing := emailingtest.New()
+ modules := signoz.NewModules(store, jwt, emailing, providerSettings, orgGetter, alertmanager)
+ user, apiErr := createTestUser(modules.OrgSetter, modules.User)
if apiErr != nil {
t.Fatalf("could not create test user: %v", apiErr)
}
diff --git a/pkg/query-service/app/integrations/test_utils.go b/pkg/query-service/app/integrations/test_utils.go
index 94a2954e87..9230a63322 100644
--- a/pkg/query-service/app/integrations/test_utils.go
+++ b/pkg/query-service/app/integrations/test_utils.go
@@ -30,7 +30,7 @@ func NewTestIntegrationsManager(t *testing.T) (*Manager, sqlstore.SQLStore) {
}, testDB
}
-func createTestUser(organizationModule organization.Module, userModule user.Module) (*types.User, *model.ApiError) {
+func createTestUser(organizationModule organization.Setter, userModule user.Module) (*types.User, *model.ApiError) {
// Create a test user for auth
ctx := context.Background()
organization := types.NewOrganization("test")
diff --git a/pkg/query-service/app/server.go b/pkg/query-service/app/server.go
index b060e47000..3074328f5e 100644
--- a/pkg/query-service/app/server.go
+++ b/pkg/query-service/app/server.go
@@ -15,6 +15,7 @@ import (
"github.com/SigNoz/signoz/pkg/apis/fields"
"github.com/SigNoz/signoz/pkg/http/middleware"
"github.com/SigNoz/signoz/pkg/licensing/nooplicensing"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/prometheus"
"github.com/SigNoz/signoz/pkg/query-service/agentConf"
"github.com/SigNoz/signoz/pkg/query-service/app/clickhouseReader"
@@ -101,6 +102,7 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
serverOptions.SigNoz.SQLStore,
serverOptions.SigNoz.TelemetryStore,
serverOptions.SigNoz.Prometheus,
+ serverOptions.SigNoz.Modules.OrgGetter,
)
if err != nil {
return nil, err
@@ -194,7 +196,7 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
&opAmpModel.AllAgents, agentConfMgr,
)
- orgs, err := apiHandler.Signoz.Modules.Organization.GetAll(context.Background())
+ orgs, err := apiHandler.Signoz.Modules.OrgGetter.ListByOwnedKeyRange(context.Background())
if err != nil {
return nil, err
}
@@ -212,14 +214,14 @@ func (s *Server) createPrivateServer(api *APIHandler) (*http.Server, error) {
r := NewRouter()
- r.Use(middleware.NewAuth(s.serverOptions.Jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}).Wrap)
+ r.Use(middleware.NewAuth(s.serverOptions.Jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}, s.serverOptions.SigNoz.Sharder, s.serverOptions.SigNoz.Instrumentation.Logger()).Wrap)
r.Use(middleware.NewTimeout(s.serverOptions.SigNoz.Instrumentation.Logger(),
s.serverOptions.Config.APIServer.Timeout.ExcludedRoutes,
s.serverOptions.Config.APIServer.Timeout.Default,
s.serverOptions.Config.APIServer.Timeout.Max,
).Wrap)
r.Use(middleware.NewAnalytics().Wrap)
- r.Use(middleware.NewAPIKey(s.serverOptions.SigNoz.SQLStore, []string{"SIGNOZ-API-KEY"}, s.serverOptions.SigNoz.Instrumentation.Logger()).Wrap)
+ r.Use(middleware.NewAPIKey(s.serverOptions.SigNoz.SQLStore, []string{"SIGNOZ-API-KEY"}, s.serverOptions.SigNoz.Instrumentation.Logger(), s.serverOptions.SigNoz.Sharder).Wrap)
r.Use(middleware.NewLogging(s.serverOptions.SigNoz.Instrumentation.Logger(), s.serverOptions.Config.APIServer.Logging.ExcludedRoutes).Wrap)
api.RegisterPrivateRoutes(r)
@@ -243,14 +245,14 @@ func (s *Server) createPrivateServer(api *APIHandler) (*http.Server, error) {
func (s *Server) createPublicServer(api *APIHandler, web web.Web) (*http.Server, error) {
r := NewRouter()
- r.Use(middleware.NewAuth(s.serverOptions.Jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}).Wrap)
+ r.Use(middleware.NewAuth(s.serverOptions.Jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}, s.serverOptions.SigNoz.Sharder, s.serverOptions.SigNoz.Instrumentation.Logger()).Wrap)
r.Use(middleware.NewTimeout(s.serverOptions.SigNoz.Instrumentation.Logger(),
s.serverOptions.Config.APIServer.Timeout.ExcludedRoutes,
s.serverOptions.Config.APIServer.Timeout.Default,
s.serverOptions.Config.APIServer.Timeout.Max,
).Wrap)
r.Use(middleware.NewAnalytics().Wrap)
- r.Use(middleware.NewAPIKey(s.serverOptions.SigNoz.SQLStore, []string{"SIGNOZ-API-KEY"}, s.serverOptions.SigNoz.Instrumentation.Logger()).Wrap)
+ r.Use(middleware.NewAPIKey(s.serverOptions.SigNoz.SQLStore, []string{"SIGNOZ-API-KEY"}, s.serverOptions.SigNoz.Instrumentation.Logger(), s.serverOptions.SigNoz.Sharder).Wrap)
r.Use(middleware.NewLogging(s.serverOptions.SigNoz.Instrumentation.Logger(), s.serverOptions.Config.APIServer.Logging.ExcludedRoutes).Wrap)
am := middleware.NewAuthZ(s.serverOptions.SigNoz.Instrumentation.Logger())
@@ -267,6 +269,7 @@ func (s *Server) createPublicServer(api *APIHandler, web web.Web) (*http.Server,
api.RegisterMessagingQueuesRoutes(r, am)
api.RegisterThirdPartyApiRoutes(r, am)
api.MetricExplorerRoutes(r, am)
+ api.RegisterTraceFunnelsRoutes(r, am)
c := cors.New(cors.Options{
AllowedOrigins: []string{"*"},
@@ -416,6 +419,7 @@ func makeRulesManager(
sqlstore sqlstore.SQLStore,
telemetryStore telemetrystore.TelemetryStore,
prometheus prometheus.Prometheus,
+ orgGetter organization.Getter,
) (*rules.Manager, error) {
// create manager opts
managerOpts := &rules.ManagerOptions{
@@ -428,6 +432,7 @@ func makeRulesManager(
Cache: cache,
EvalDelay: constants.GetEvalDelay(),
SQLStore: sqlstore,
+ OrgGetter: orgGetter,
}
// create Manager
diff --git a/pkg/query-service/app/traces/v4/query_builder.go b/pkg/query-service/app/traces/v4/query_builder.go
index 7b2befdd95..69a76de4d1 100644
--- a/pkg/query-service/app/traces/v4/query_builder.go
+++ b/pkg/query-service/app/traces/v4/query_builder.go
@@ -87,7 +87,7 @@ func existsSubQueryForFixedColumn(key v3.AttributeKey, op v3.FilterOperator) (st
}
}
-func buildTracesFilterQuery(fs *v3.FilterSet) (string, error) {
+func BuildTracesFilterQuery(fs *v3.FilterSet) (string, error) {
var conditions []string
if fs != nil && len(fs.Items) != 0 {
@@ -167,7 +167,7 @@ func handleEmptyValuesInGroupBy(groupBy []v3.AttributeKey) (string, error) {
Operator: "AND",
Items: filterItems,
}
- return buildTracesFilterQuery(&filterSet)
+ return BuildTracesFilterQuery(&filterSet)
}
return "", nil
}
@@ -248,7 +248,7 @@ func buildTracesQuery(start, end, step int64, mq *v3.BuilderQuery, panelType v3.
timeFilter := fmt.Sprintf("(timestamp >= '%d' AND timestamp <= '%d') AND (ts_bucket_start >= %d AND ts_bucket_start <= %d)", tracesStart, tracesEnd, bucketStart, bucketEnd)
- filterSubQuery, err := buildTracesFilterQuery(mq.Filters)
+ filterSubQuery, err := BuildTracesFilterQuery(mq.Filters)
if err != nil {
return "", err
}
diff --git a/pkg/query-service/app/traces/v4/query_builder_test.go b/pkg/query-service/app/traces/v4/query_builder_test.go
index eff4070b54..8943083162 100644
--- a/pkg/query-service/app/traces/v4/query_builder_test.go
+++ b/pkg/query-service/app/traces/v4/query_builder_test.go
@@ -211,7 +211,7 @@ func Test_buildTracesFilterQuery(t *testing.T) {
want: "",
},
{
- name: "Test buildTracesFilterQuery in, nin",
+ name: "Test BuildTracesFilterQuery in, nin",
args: args{
fs: &v3.FilterSet{Operator: "AND", Items: []v3.FilterItem{
{Key: v3.AttributeKey{Key: "method", DataType: v3.AttributeKeyDataTypeString, Type: v3.AttributeKeyTypeTag}, Value: []interface{}{"GET", "POST"}, Operator: v3.FilterOperatorIn},
@@ -226,7 +226,7 @@ func Test_buildTracesFilterQuery(t *testing.T) {
wantErr: false,
},
{
- name: "Test buildTracesFilterQuery not eq, neq, gt, lt, gte, lte",
+ name: "Test BuildTracesFilterQuery not eq, neq, gt, lt, gte, lte",
args: args{
fs: &v3.FilterSet{Operator: "AND", Items: []v3.FilterItem{
{Key: v3.AttributeKey{Key: "duration", DataType: v3.AttributeKeyDataTypeInt64, Type: v3.AttributeKeyTypeTag}, Value: 102, Operator: v3.FilterOperatorEqual},
@@ -274,13 +274,13 @@ func Test_buildTracesFilterQuery(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- got, err := buildTracesFilterQuery(tt.args.fs)
+ got, err := BuildTracesFilterQuery(tt.args.fs)
if (err != nil) != tt.wantErr {
- t.Errorf("buildTracesFilterQuery() error = %v, wantErr %v", err, tt.wantErr)
+ t.Errorf("BuildTracesFilterQuery() error = %v, wantErr %v", err, tt.wantErr)
return
}
if got != tt.want {
- t.Errorf("buildTracesFilterQuery() = %v, want %v", got, tt.want)
+ t.Errorf("BuildTracesFilterQuery() = %v, want %v", got, tt.want)
}
})
}
diff --git a/pkg/query-service/auth/auth.go b/pkg/query-service/auth/auth.go
deleted file mode 100644
index d157083d4e..0000000000
--- a/pkg/query-service/auth/auth.go
+++ /dev/null
@@ -1,65 +0,0 @@
-package auth
-
-import (
- "context"
-
- "github.com/SigNoz/signoz/pkg/alertmanager"
- "github.com/SigNoz/signoz/pkg/modules/organization"
- "github.com/SigNoz/signoz/pkg/modules/quickfilter"
- "github.com/SigNoz/signoz/pkg/modules/user"
- "github.com/SigNoz/signoz/pkg/valuer"
-
- "github.com/SigNoz/signoz/pkg/query-service/model"
- "github.com/SigNoz/signoz/pkg/types"
-)
-
-func RegisterOrgAndFirstUser(ctx context.Context, req *types.PostableRegisterOrgAndAdmin, organizationModule organization.Module, userModule user.Module) (*types.User, *model.ApiError) {
- if req.Email == "" {
- return nil, model.BadRequest(model.ErrEmailRequired{})
- }
-
- if req.Password == "" {
- return nil, model.BadRequest(model.ErrPasswordRequired{})
- }
-
- organization := types.NewOrganization(req.OrgDisplayName)
- err := organizationModule.Create(ctx, organization)
- if err != nil {
- return nil, model.InternalError(err)
- }
-
- user, err := types.NewUser(req.Name, req.Email, types.RoleAdmin.String(), organization.ID.StringValue())
- if err != nil {
- return nil, model.InternalError(err)
- }
-
- password, err := types.NewFactorPassword(req.Password)
- if err != nil {
- return nil, model.InternalError(err)
- }
-
- user, err = userModule.CreateUserWithPassword(ctx, user, password)
- if err != nil {
- return nil, model.InternalError(err)
- }
-
- return user, nil
-}
-
-// First user registration
-func Register(ctx context.Context, req *types.PostableRegisterOrgAndAdmin, alertmanager alertmanager.Alertmanager, organizationModule organization.Module, userModule user.Module, quickfiltermodule quickfilter.Module) (*types.User, *model.ApiError) {
- user, err := RegisterOrgAndFirstUser(ctx, req, organizationModule, userModule)
- if err != nil {
- return nil, err
- }
-
- if err := alertmanager.SetDefaultConfig(ctx, user.OrgID); err != nil {
- return nil, model.InternalError(err)
- }
-
- if err := quickfiltermodule.SetDefaultConfig(ctx, valuer.MustNewUUID(user.OrgID)); err != nil {
- return nil, model.InternalError(err)
- }
-
- return user, nil
-}
diff --git a/pkg/query-service/main.go b/pkg/query-service/main.go
index 18565541ae..ddfb28002b 100644
--- a/pkg/query-service/main.go
+++ b/pkg/query-service/main.go
@@ -12,6 +12,7 @@ import (
"github.com/SigNoz/signoz/pkg/factory"
"github.com/SigNoz/signoz/pkg/licensing"
"github.com/SigNoz/signoz/pkg/licensing/nooplicensing"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/query-service/app"
"github.com/SigNoz/signoz/pkg/query-service/constants"
"github.com/SigNoz/signoz/pkg/signoz"
@@ -121,7 +122,7 @@ func main() {
zeus.Config{},
noopzeus.NewProviderFactory(),
licensing.Config{},
- func(_ sqlstore.SQLStore, _ zeus.Zeus) factory.ProviderFactory[licensing.Licensing, licensing.Config] {
+ func(_ sqlstore.SQLStore, _ zeus.Zeus, _ organization.Getter) factory.ProviderFactory[licensing.Licensing, licensing.Config] {
return nooplicensing.NewFactory()
},
signoz.NewEmailingProviderFactories(),
diff --git a/pkg/query-service/model/errors.go b/pkg/query-service/model/errors.go
deleted file mode 100644
index d0b95d279c..0000000000
--- a/pkg/query-service/model/errors.go
+++ /dev/null
@@ -1,36 +0,0 @@
-package model
-
-import "fmt"
-
-// custom errors related to registration
-type ErrFeatureUnavailable struct {
- Key string
-}
-
-func (errFeatureUnavailable ErrFeatureUnavailable) Error() string {
- return fmt.Sprintf("feature unavailable: %s", errFeatureUnavailable.Key)
-}
-
-type ErrEmailRequired struct{}
-
-func (errEmailRequired ErrEmailRequired) Error() string {
- return "email is required"
-}
-
-type ErrPasswordRequired struct{}
-
-func (errPasswordRequired ErrPasswordRequired) Error() string {
- return "password is required"
-}
-
-type ErrSignupFailed struct{}
-
-func (errSignupFailed ErrSignupFailed) Error() string {
- return "failed to register user"
-}
-
-type ErrNoOrgFound struct{}
-
-func (errNoOrgFound ErrNoOrgFound) Error() string {
- return "no org found"
-}
diff --git a/pkg/query-service/rules/manager.go b/pkg/query-service/rules/manager.go
index 1d13bfc53d..b7f3f20fb1 100644
--- a/pkg/query-service/rules/manager.go
+++ b/pkg/query-service/rules/manager.go
@@ -19,6 +19,7 @@ import (
"github.com/SigNoz/signoz/pkg/alertmanager"
"github.com/SigNoz/signoz/pkg/cache"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/prometheus"
"github.com/SigNoz/signoz/pkg/query-service/interfaces"
"github.com/SigNoz/signoz/pkg/query-service/model"
@@ -95,6 +96,7 @@ type ManagerOptions struct {
PrepareTestRuleFunc func(opts PrepareTestRuleOptions) (int, *model.ApiError)
Alertmanager alertmanager.Alertmanager
SQLStore sqlstore.SQLStore
+ OrgGetter organization.Getter
}
// The Manager manages recording and alerting rules.
@@ -116,6 +118,7 @@ type Manager struct {
alertmanager alertmanager.Alertmanager
sqlstore sqlstore.SQLStore
+ orgGetter organization.Getter
}
func defaultOptions(o *ManagerOptions) *ManagerOptions {
@@ -210,6 +213,7 @@ func NewManager(o *ManagerOptions) (*Manager, error) {
prepareTestRuleFunc: o.PrepareTestRuleFunc,
alertmanager: o.Alertmanager,
sqlstore: o.SQLStore,
+ orgGetter: o.OrgGetter,
}
return m, nil
@@ -239,14 +243,14 @@ func (m *Manager) Pause(b bool) {
}
func (m *Manager) initiate(ctx context.Context) error {
- orgIDs, err := m.ruleStore.ListOrgs(ctx)
+ orgs, err := m.orgGetter.ListByOwnedKeyRange(ctx)
if err != nil {
return err
}
var loadErrors []error
- for _, orgID := range orgIDs {
- storedRules, err := m.ruleStore.GetStoredRules(ctx, orgID.StringValue())
+ for _, org := range orgs {
+ storedRules, err := m.ruleStore.GetStoredRules(ctx, org.ID.StringValue())
if err != nil {
return err
}
@@ -279,7 +283,7 @@ func (m *Manager) initiate(ctx context.Context) error {
}
}
if !parsedRule.Disabled {
- err := m.addTask(ctx, orgID, parsedRule, taskName)
+ err := m.addTask(ctx, org.ID, parsedRule, taskName)
if err != nil {
zap.L().Error("failed to load the rule definition", zap.String("name", taskName), zap.Error(err))
}
diff --git a/pkg/query-service/tests/integration/filter_suggestions_test.go b/pkg/query-service/tests/integration/filter_suggestions_test.go
index 21665bb3d2..22dda58f07 100644
--- a/pkg/query-service/tests/integration/filter_suggestions_test.go
+++ b/pkg/query-service/tests/integration/filter_suggestions_test.go
@@ -11,8 +11,12 @@ import (
"testing"
"time"
- "github.com/SigNoz/signoz/pkg/emailing"
- "github.com/SigNoz/signoz/pkg/emailing/noopemailing"
+ "github.com/SigNoz/signoz/pkg/alertmanager"
+ "github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerserver"
+ "github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
+ "github.com/SigNoz/signoz/pkg/emailing/emailingtest"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/sharder/noopsharder"
"github.com/SigNoz/signoz/pkg/types/authtypes"
"github.com/SigNoz/signoz/pkg/http/middleware"
@@ -304,16 +308,22 @@ func NewFilterSuggestionsTestBed(t *testing.T) *FilterSuggestionsTestBed {
mockClickhouse.MatchExpectationsInOrder(false)
providerSettings := instrumentationtest.New().ToProviderSettings()
- emailing, _ := noopemailing.New(context.Background(), providerSettings, emailing.Config{})
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(t, err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(testDB), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{Signoz: alertmanager.Signoz{PollInterval: 10 * time.Second, Config: alertmanagerserver.NewConfig()}}, testDB, orgGetter)
+ require.NoError(t, err)
jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
- modules := signoz.NewModules(testDB, jwt, emailing, providerSettings)
+ emailing := emailingtest.New()
+ modules := signoz.NewModules(testDB, jwt, emailing, providerSettings, orgGetter, alertmanager)
+ handlers := signoz.NewHandlers(modules)
apiHandler, err := app.NewAPIHandler(app.APIHandlerOpts{
Reader: reader,
JWT: jwt,
Signoz: &signoz.SigNoz{
Modules: modules,
- Handlers: signoz.NewHandlers(modules),
+ Handlers: handlers,
},
})
if err != nil {
@@ -322,13 +332,12 @@ func NewFilterSuggestionsTestBed(t *testing.T) *FilterSuggestionsTestBed {
router := app.NewRouter()
//add the jwt middleware
- router.Use(middleware.NewAuth(jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}).Wrap)
+ router.Use(middleware.NewAuth(jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}, sharder, instrumentationtest.New().Logger()).Wrap)
am := middleware.NewAuthZ(instrumentationtest.New().Logger())
apiHandler.RegisterRoutes(router, am)
apiHandler.RegisterQueryRangeV3Routes(router, am)
- organizationModule := implorganization.NewModule(implorganization.NewStore(testDB))
- user, apiErr := createTestUser(organizationModule, modules.User)
+ user, apiErr := createTestUser(modules.OrgSetter, modules.User)
if apiErr != nil {
t.Fatalf("could not create a test user: %v", apiErr)
}
diff --git a/pkg/query-service/tests/integration/logparsingpipeline_test.go b/pkg/query-service/tests/integration/logparsingpipeline_test.go
index 69e4102ac3..8413d5c358 100644
--- a/pkg/query-service/tests/integration/logparsingpipeline_test.go
+++ b/pkg/query-service/tests/integration/logparsingpipeline_test.go
@@ -11,8 +11,10 @@ import (
"testing"
"time"
- "github.com/SigNoz/signoz/pkg/emailing"
- "github.com/SigNoz/signoz/pkg/emailing/noopemailing"
+ "github.com/SigNoz/signoz/pkg/alertmanager"
+ "github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerserver"
+ "github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
+ "github.com/SigNoz/signoz/pkg/emailing/emailingtest"
"github.com/SigNoz/signoz/pkg/instrumentation/instrumentationtest"
"github.com/SigNoz/signoz/pkg/modules/organization/implorganization"
"github.com/SigNoz/signoz/pkg/modules/user"
@@ -26,6 +28,8 @@ import (
v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3"
"github.com/SigNoz/signoz/pkg/query-service/queryBuilderToExpr"
"github.com/SigNoz/signoz/pkg/query-service/utils"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/sharder/noopsharder"
"github.com/SigNoz/signoz/pkg/signoz"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/types"
@@ -480,9 +484,14 @@ func NewTestbedWithoutOpamp(t *testing.T, sqlStore sqlstore.SQLStore) *LogPipeli
}
providerSettings := instrumentationtest.New().ToProviderSettings()
- emailing, _ := noopemailing.New(context.Background(), providerSettings, emailing.Config{})
- jwt := authtypes.NewJWT("", 10*time.Minute, 30*time.Minute)
- modules := signoz.NewModules(sqlStore, jwt, emailing, providerSettings)
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(t, err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(sqlStore), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{Signoz: alertmanager.Signoz{PollInterval: 10 * time.Second, Config: alertmanagerserver.NewConfig()}}, sqlStore, orgGetter)
+ require.NoError(t, err)
+ jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
+ emailing := emailingtest.New()
+ modules := signoz.NewModules(sqlStore, jwt, emailing, providerSettings, orgGetter, alertmanager)
handlers := signoz.NewHandlers(modules)
apiHandler, err := app.NewAPIHandler(app.APIHandlerOpts{
@@ -497,8 +506,7 @@ func NewTestbedWithoutOpamp(t *testing.T, sqlStore sqlstore.SQLStore) *LogPipeli
t.Fatalf("could not create a new ApiHandler: %v", err)
}
- organizationModule := implorganization.NewModule(implorganization.NewStore(sqlStore))
- user, apiErr := createTestUser(organizationModule, modules.User)
+ user, apiErr := createTestUser(modules.OrgSetter, modules.User)
if apiErr != nil {
t.Fatalf("could not create a test user: %v", apiErr)
}
diff --git a/pkg/query-service/tests/integration/signoz_cloud_integrations_test.go b/pkg/query-service/tests/integration/signoz_cloud_integrations_test.go
index 8ea9d7a974..31197263cd 100644
--- a/pkg/query-service/tests/integration/signoz_cloud_integrations_test.go
+++ b/pkg/query-service/tests/integration/signoz_cloud_integrations_test.go
@@ -9,8 +9,12 @@ import (
"testing"
"time"
- "github.com/SigNoz/signoz/pkg/emailing"
- "github.com/SigNoz/signoz/pkg/emailing/noopemailing"
+ "github.com/SigNoz/signoz/pkg/alertmanager"
+ "github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerserver"
+ "github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
+ "github.com/SigNoz/signoz/pkg/emailing/emailingtest"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/sharder/noopsharder"
"github.com/SigNoz/signoz/pkg/types/authtypes"
"github.com/SigNoz/signoz/pkg/http/middleware"
@@ -365,9 +369,14 @@ func NewCloudIntegrationsTestBed(t *testing.T, testDB sqlstore.SQLStore) *CloudI
mockClickhouse.MatchExpectationsInOrder(false)
providerSettings := instrumentationtest.New().ToProviderSettings()
- emailing, _ := noopemailing.New(context.Background(), providerSettings, emailing.Config{})
- jwt := authtypes.NewJWT("", 10*time.Minute, 30*time.Minute)
- modules := signoz.NewModules(testDB, jwt, emailing, providerSettings)
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(t, err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(testDB), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{Signoz: alertmanager.Signoz{PollInterval: 10 * time.Second, Config: alertmanagerserver.NewConfig()}}, testDB, orgGetter)
+ require.NoError(t, err)
+ jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
+ emailing := emailingtest.New()
+ modules := signoz.NewModules(testDB, jwt, emailing, providerSettings, orgGetter, alertmanager)
handlers := signoz.NewHandlers(modules)
apiHandler, err := app.NewAPIHandler(app.APIHandlerOpts{
@@ -384,13 +393,12 @@ func NewCloudIntegrationsTestBed(t *testing.T, testDB sqlstore.SQLStore) *CloudI
}
router := app.NewRouter()
- router.Use(middleware.NewAuth(jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}).Wrap)
+ router.Use(middleware.NewAuth(jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}, sharder, instrumentationtest.New().Logger()).Wrap)
am := middleware.NewAuthZ(instrumentationtest.New().Logger())
apiHandler.RegisterRoutes(router, am)
apiHandler.RegisterCloudIntegrationsRoutes(router, am)
- organizationModule := implorganization.NewModule(implorganization.NewStore(testDB))
- user, apiErr := createTestUser(organizationModule, modules.User)
+ user, apiErr := createTestUser(modules.OrgSetter, modules.User)
if apiErr != nil {
t.Fatalf("could not create a test user: %v", apiErr)
}
diff --git a/pkg/query-service/tests/integration/signoz_integrations_test.go b/pkg/query-service/tests/integration/signoz_integrations_test.go
index 1b221267fb..a4aad441c4 100644
--- a/pkg/query-service/tests/integration/signoz_integrations_test.go
+++ b/pkg/query-service/tests/integration/signoz_integrations_test.go
@@ -9,9 +9,10 @@ import (
"testing"
"time"
- "github.com/SigNoz/signoz/pkg/emailing"
- "github.com/SigNoz/signoz/pkg/emailing/noopemailing"
-
+ "github.com/SigNoz/signoz/pkg/alertmanager"
+ "github.com/SigNoz/signoz/pkg/alertmanager/alertmanagerserver"
+ "github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
+ "github.com/SigNoz/signoz/pkg/emailing/emailingtest"
"github.com/SigNoz/signoz/pkg/http/middleware"
"github.com/SigNoz/signoz/pkg/instrumentation/instrumentationtest"
"github.com/SigNoz/signoz/pkg/modules/organization/implorganization"
@@ -22,6 +23,8 @@ import (
"github.com/SigNoz/signoz/pkg/query-service/model"
v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3"
"github.com/SigNoz/signoz/pkg/query-service/utils"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/sharder/noopsharder"
"github.com/SigNoz/signoz/pkg/signoz"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/types"
@@ -571,9 +574,14 @@ func NewIntegrationsTestBed(t *testing.T, testDB sqlstore.SQLStore) *Integration
}
providerSettings := instrumentationtest.New().ToProviderSettings()
- emailing, _ := noopemailing.New(context.Background(), providerSettings, emailing.Config{})
- jwt := authtypes.NewJWT("", 10*time.Minute, 30*time.Minute)
- modules := signoz.NewModules(testDB, jwt, emailing, providerSettings)
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(t, err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(testDB), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{Signoz: alertmanager.Signoz{PollInterval: 10 * time.Second, Config: alertmanagerserver.NewConfig()}}, testDB, orgGetter)
+ require.NoError(t, err)
+ jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
+ emailing := emailingtest.New()
+ modules := signoz.NewModules(testDB, jwt, emailing, providerSettings, orgGetter, alertmanager)
handlers := signoz.NewHandlers(modules)
apiHandler, err := app.NewAPIHandler(app.APIHandlerOpts{
@@ -592,13 +600,12 @@ func NewIntegrationsTestBed(t *testing.T, testDB sqlstore.SQLStore) *Integration
}
router := app.NewRouter()
- router.Use(middleware.NewAuth(jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}).Wrap)
+ router.Use(middleware.NewAuth(jwt, []string{"Authorization", "Sec-WebSocket-Protocol"}, sharder, instrumentationtest.New().Logger()).Wrap)
am := middleware.NewAuthZ(instrumentationtest.New().Logger())
apiHandler.RegisterRoutes(router, am)
apiHandler.RegisterIntegrationRoutes(router, am)
- organizationModule := implorganization.NewModule(implorganization.NewStore(testDB))
- user, apiErr := createTestUser(organizationModule, modules.User)
+ user, apiErr := createTestUser(modules.OrgSetter, modules.User)
if apiErr != nil {
t.Fatalf("could not create a test user: %v", apiErr)
}
diff --git a/pkg/query-service/tests/integration/test_utils.go b/pkg/query-service/tests/integration/test_utils.go
index 869d6eeda7..90fb293005 100644
--- a/pkg/query-service/tests/integration/test_utils.go
+++ b/pkg/query-service/tests/integration/test_utils.go
@@ -147,11 +147,11 @@ func makeTestSignozLog(
return testLog
}
-func createTestUser(organizationModule organization.Module, userModule user.Module) (*types.User, *model.ApiError) {
+func createTestUser(orgSetter organization.Setter, userModule user.Module) (*types.User, *model.ApiError) {
// Create a test user for auth
ctx := context.Background()
organization := types.NewOrganization("test")
- err := organizationModule.Create(ctx, organization)
+ err := orgSetter.Create(ctx, organization)
if err != nil {
return nil, model.InternalError(err)
}
diff --git a/pkg/query-service/utils/filter_conditions.go b/pkg/query-service/utils/filter_conditions.go
index 5fca15a911..14aa909841 100644
--- a/pkg/query-service/utils/filter_conditions.go
+++ b/pkg/query-service/utils/filter_conditions.go
@@ -88,9 +88,9 @@ func buildSingleFilterCondition(key string, op v3.FilterOperator, fmtVal string,
case v3.FilterOperatorLessThanOrEq:
return fmt.Sprintf("%s <= %s", keyCondition, fmtVal), nil
case v3.FilterOperatorContains:
- return fmt.Sprintf("like(%s, %s)", keyCondition, fmtVal), nil
+ return fmt.Sprintf("ilike(%s, %s)", keyCondition, fmtVal), nil
case v3.FilterOperatorNotContains:
- return fmt.Sprintf("notLike(%s, %s)", keyCondition, fmtVal), nil
+ return fmt.Sprintf("notILike(%s, %s)", keyCondition, fmtVal), nil
case v3.FilterOperatorExists:
return fmt.Sprintf("has(JSONExtractKeys(labels), '%s')", key), nil
case v3.FilterOperatorNotExists:
diff --git a/pkg/query-service/utils/testutils.go b/pkg/query-service/utils/testutils.go
index 5cd7960786..c429f44378 100644
--- a/pkg/query-service/utils/testutils.go
+++ b/pkg/query-service/utils/testutils.go
@@ -67,6 +67,7 @@ func NewTestSqliteDB(t *testing.T) (sqlStore sqlstore.SQLStore, testDBFilePath s
sqlmigration.NewAuthRefactorFactory(sqlStore),
sqlmigration.NewMigratePATToFactorAPIKey(sqlStore),
sqlmigration.NewUpdateApiMonitoringFiltersFactory(sqlStore),
+ sqlmigration.NewAddKeyOrganizationFactory(sqlStore),
),
)
if err != nil {
diff --git a/pkg/ruler/rulestore/sqlrulestore/rule.go b/pkg/ruler/rulestore/sqlrulestore/rule.go
index 735cce6b20..68093eb233 100644
--- a/pkg/ruler/rulestore/sqlrulestore/rule.go
+++ b/pkg/ruler/rulestore/sqlrulestore/rule.go
@@ -4,7 +4,6 @@ import (
"context"
"github.com/SigNoz/signoz/pkg/sqlstore"
- "github.com/SigNoz/signoz/pkg/types"
ruletypes "github.com/SigNoz/signoz/pkg/types/ruletypes"
"github.com/SigNoz/signoz/pkg/valuer"
"github.com/jmoiron/sqlx"
@@ -118,27 +117,3 @@ func (r *rule) GetRuleUUID(ctx context.Context, ruleID int) (*ruletypes.RuleHist
}
return ruleHistory, nil
}
-
-func (r *rule) ListOrgs(ctx context.Context) ([]valuer.UUID, error) {
- orgIDStrs := make([]string, 0)
- err := r.sqlstore.
- BunDB().
- NewSelect().
- Model(new(types.Organization)).
- Column("id").
- Scan(ctx, &orgIDStrs)
- if err != nil {
- return nil, err
- }
-
- orgIDs := make([]valuer.UUID, len(orgIDStrs))
- for idx, orgIDStr := range orgIDStrs {
- orgID, err := valuer.NewUUID(orgIDStr)
- if err != nil {
- return nil, err
- }
- orgIDs[idx] = orgID
- }
-
- return orgIDs, nil
-}
diff --git a/pkg/sharder/config.go b/pkg/sharder/config.go
new file mode 100644
index 0000000000..785d5545c1
--- /dev/null
+++ b/pkg/sharder/config.go
@@ -0,0 +1,32 @@
+package sharder
+
+import (
+ "github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/valuer"
+)
+
+type Config struct {
+ Provider string `mapstructure:"provider"`
+ Single Single `mapstructure:"single"`
+}
+
+type Single struct {
+ OrgID valuer.UUID `mapstructure:"org_id"`
+}
+
+func NewConfigFactory() factory.ConfigFactory {
+ return factory.NewConfigFactory(factory.MustNewName("sharder"), newConfig)
+}
+
+func newConfig() factory.Config {
+ return &Config{
+ Provider: "noop",
+ Single: Single{
+ OrgID: valuer.UUID{},
+ },
+ }
+}
+
+func (c Config) Validate() error {
+ return nil
+}
diff --git a/pkg/sharder/noopsharder/provider.go b/pkg/sharder/noopsharder/provider.go
new file mode 100644
index 0000000000..b7c3d02a7d
--- /dev/null
+++ b/pkg/sharder/noopsharder/provider.go
@@ -0,0 +1,33 @@
+package noopsharder
+
+import (
+ "context"
+ "math"
+
+ "github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/sharder"
+)
+
+type provider struct {
+ settings factory.ScopedProviderSettings
+}
+
+func NewFactory() factory.ProviderFactory[sharder.Sharder, sharder.Config] {
+ return factory.NewProviderFactory(factory.MustNewName("noop"), New)
+}
+
+func New(ctx context.Context, providerSettings factory.ProviderSettings, config sharder.Config) (sharder.Sharder, error) {
+ settings := factory.NewScopedProviderSettings(providerSettings, "github.com/SigNoz/signoz/pkg/sharder/noopsharder")
+
+ return &provider{
+ settings: settings,
+ }, nil
+}
+
+func (provider *provider) GetMyOwnedKeyRange(ctx context.Context) (uint32, uint32, error) {
+ return 0, math.MaxUint32, nil
+}
+
+func (provider *provider) IsMyOwnedKey(ctx context.Context, key uint32) error {
+ return nil
+}
diff --git a/pkg/sharder/sharder.go b/pkg/sharder/sharder.go
new file mode 100644
index 0000000000..b627ef37a5
--- /dev/null
+++ b/pkg/sharder/sharder.go
@@ -0,0 +1,13 @@
+package sharder
+
+import (
+ "context"
+)
+
+type Sharder interface {
+ // Returns the keys owned by the current instance.
+ GetMyOwnedKeyRange(context.Context) (uint32, uint32, error)
+
+ // Returns true if the key is owned by the current instance.
+ IsMyOwnedKey(context.Context, uint32) error
+}
diff --git a/pkg/sharder/singlesharder/provider.go b/pkg/sharder/singlesharder/provider.go
new file mode 100644
index 0000000000..86b7d7197d
--- /dev/null
+++ b/pkg/sharder/singlesharder/provider.go
@@ -0,0 +1,43 @@
+package singlesharder
+
+import (
+ "context"
+
+ "github.com/SigNoz/signoz/pkg/errors"
+ "github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/valuer"
+)
+
+type provider struct {
+ settings factory.ScopedProviderSettings
+ orgID valuer.UUID
+ orgIDKey uint32
+}
+
+func NewFactory() factory.ProviderFactory[sharder.Sharder, sharder.Config] {
+ return factory.NewProviderFactory(factory.MustNewName("single"), New)
+}
+
+func New(ctx context.Context, providerSettings factory.ProviderSettings, config sharder.Config) (sharder.Sharder, error) {
+ settings := factory.NewScopedProviderSettings(providerSettings, "github.com/SigNoz/signoz/pkg/sharder/singlesharder")
+
+ return &provider{
+ settings: settings,
+ orgID: config.Single.OrgID,
+ orgIDKey: types.NewOrganizationKey(config.Single.OrgID),
+ }, nil
+}
+
+func (provider *provider) GetMyOwnedKeyRange(ctx context.Context) (uint32, uint32, error) {
+ return provider.orgIDKey, provider.orgIDKey, nil
+}
+
+func (provider *provider) IsMyOwnedKey(ctx context.Context, key uint32) error {
+ if key == provider.orgIDKey {
+ return nil
+ }
+
+ return errors.Newf(errors.TypeForbidden, errors.CodeForbidden, "key %d for org %s is not owned by my current instance", key, provider.orgID)
+}
diff --git a/pkg/signoz/config.go b/pkg/signoz/config.go
index 4fb3bbf142..2554fb3279 100644
--- a/pkg/signoz/config.go
+++ b/pkg/signoz/config.go
@@ -17,6 +17,7 @@ import (
"github.com/SigNoz/signoz/pkg/factory"
"github.com/SigNoz/signoz/pkg/instrumentation"
"github.com/SigNoz/signoz/pkg/prometheus"
+ "github.com/SigNoz/signoz/pkg/sharder"
"github.com/SigNoz/signoz/pkg/sqlmigration"
"github.com/SigNoz/signoz/pkg/sqlmigrator"
"github.com/SigNoz/signoz/pkg/sqlstore"
@@ -62,6 +63,9 @@ type Config struct {
// Emailing config
Emailing emailing.Config `mapstructure:"emailing" yaml:"emailing"`
+
+ // Sharder config
+ Sharder sharder.Config `mapstructure:"sharder" yaml:"sharder"`
}
// DeprecatedFlags are the flags that are deprecated and scheduled for removal.
@@ -86,6 +90,7 @@ func NewConfig(ctx context.Context, resolverConfig config.ResolverConfig, deprec
prometheus.NewConfigFactory(),
alertmanager.NewConfigFactory(),
emailing.NewConfigFactory(),
+ sharder.NewConfigFactory(),
}
conf, err := config.New(ctx, resolverConfig, configFactories)
diff --git a/pkg/signoz/handler.go b/pkg/signoz/handler.go
index 2b1512b63a..6f5ccdce98 100644
--- a/pkg/signoz/handler.go
+++ b/pkg/signoz/handler.go
@@ -13,6 +13,8 @@ import (
"github.com/SigNoz/signoz/pkg/modules/quickfilter/implquickfilter"
"github.com/SigNoz/signoz/pkg/modules/savedview"
"github.com/SigNoz/signoz/pkg/modules/savedview/implsavedview"
+ "github.com/SigNoz/signoz/pkg/modules/tracefunnel"
+ "github.com/SigNoz/signoz/pkg/modules/tracefunnel/impltracefunnel"
"github.com/SigNoz/signoz/pkg/modules/user"
"github.com/SigNoz/signoz/pkg/modules/user/impluser"
)
@@ -25,16 +27,18 @@ type Handlers struct {
Apdex apdex.Handler
Dashboard dashboard.Handler
QuickFilter quickfilter.Handler
+ TraceFunnel tracefunnel.Handler
}
func NewHandlers(modules Modules) Handlers {
return Handlers{
- Organization: implorganization.NewHandler(modules.Organization),
+ Organization: implorganization.NewHandler(modules.OrgGetter, modules.OrgSetter),
Preference: implpreference.NewHandler(modules.Preference),
User: impluser.NewHandler(modules.User),
SavedView: implsavedview.NewHandler(modules.SavedView),
Apdex: implapdex.NewHandler(modules.Apdex),
Dashboard: impldashboard.NewHandler(modules.Dashboard),
QuickFilter: implquickfilter.NewHandler(modules.QuickFilter),
+ TraceFunnel: impltracefunnel.NewHandler(modules.TraceFunnel),
}
}
diff --git a/pkg/signoz/handler_test.go b/pkg/signoz/handler_test.go
index b5ebd97d3e..0844ebf243 100644
--- a/pkg/signoz/handler_test.go
+++ b/pkg/signoz/handler_test.go
@@ -1,28 +1,40 @@
package signoz
import (
+ "context"
"reflect"
"testing"
"time"
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/SigNoz/signoz/pkg/alertmanager"
+ "github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
"github.com/SigNoz/signoz/pkg/emailing/emailingtest"
"github.com/SigNoz/signoz/pkg/factory/factorytest"
+ "github.com/SigNoz/signoz/pkg/modules/organization/implorganization"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/sharder/noopsharder"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/sqlstore/sqlstoretest"
"github.com/SigNoz/signoz/pkg/types/authtypes"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
)
// This is a test to ensure that all fields of the handlers are initialized.
// It also helps us catch these errors at compile time instead of runtime.
func TestNewHandlers(t *testing.T) {
sqlstore := sqlstoretest.New(sqlstore.Config{Provider: "sqlite"}, sqlmock.QueryMatcherEqual)
+ providerSettings := factorytest.NewSettings()
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(t, err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(sqlstore), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{}, sqlstore, orgGetter)
+ require.NoError(t, err)
jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
emailing := emailingtest.New()
- providerSettings := factorytest.NewSettings()
+ modules := NewModules(sqlstore, jwt, emailing, providerSettings, orgGetter, alertmanager)
- modules := NewModules(sqlstore, jwt, emailing, providerSettings)
handlers := NewHandlers(modules)
reflectVal := reflect.ValueOf(handlers)
diff --git a/pkg/signoz/module.go b/pkg/signoz/module.go
index 0abdff2f85..33d9be5983 100644
--- a/pkg/signoz/module.go
+++ b/pkg/signoz/module.go
@@ -1,6 +1,7 @@
package signoz
import (
+ "github.com/SigNoz/signoz/pkg/alertmanager"
"github.com/SigNoz/signoz/pkg/emailing"
"github.com/SigNoz/signoz/pkg/factory"
"github.com/SigNoz/signoz/pkg/modules/apdex"
@@ -15,6 +16,8 @@ import (
"github.com/SigNoz/signoz/pkg/modules/quickfilter/implquickfilter"
"github.com/SigNoz/signoz/pkg/modules/savedview"
"github.com/SigNoz/signoz/pkg/modules/savedview/implsavedview"
+ "github.com/SigNoz/signoz/pkg/modules/tracefunnel"
+ "github.com/SigNoz/signoz/pkg/modules/tracefunnel/impltracefunnel"
"github.com/SigNoz/signoz/pkg/modules/user"
"github.com/SigNoz/signoz/pkg/modules/user/impluser"
"github.com/SigNoz/signoz/pkg/sqlstore"
@@ -23,23 +26,37 @@ import (
)
type Modules struct {
- Organization organization.Module
- Preference preference.Module
- User user.Module
- SavedView savedview.Module
- Apdex apdex.Module
- Dashboard dashboard.Module
- QuickFilter quickfilter.Module
+ OrgGetter organization.Getter
+ OrgSetter organization.Setter
+ Preference preference.Module
+ User user.Module
+ SavedView savedview.Module
+ Apdex apdex.Module
+ Dashboard dashboard.Module
+ QuickFilter quickfilter.Module
+ TraceFunnel tracefunnel.Module
}
-func NewModules(sqlstore sqlstore.SQLStore, jwt *authtypes.JWT, emailing emailing.Emailing, providerSettings factory.ProviderSettings) Modules {
+func NewModules(
+ sqlstore sqlstore.SQLStore,
+ jwt *authtypes.JWT,
+ emailing emailing.Emailing,
+ providerSettings factory.ProviderSettings,
+ orgGetter organization.Getter,
+ alertmanager alertmanager.Alertmanager,
+) Modules {
+ quickfilter := implquickfilter.NewModule(implquickfilter.NewStore(sqlstore))
+ orgSetter := implorganization.NewSetter(implorganization.NewStore(sqlstore), alertmanager, quickfilter)
+ user := impluser.NewModule(impluser.NewStore(sqlstore, providerSettings), jwt, emailing, providerSettings, orgSetter)
return Modules{
- Organization: implorganization.NewModule(implorganization.NewStore(sqlstore)),
- Preference: implpreference.NewModule(implpreference.NewStore(sqlstore), preferencetypes.NewDefaultPreferenceMap()),
- SavedView: implsavedview.NewModule(sqlstore),
- Apdex: implapdex.NewModule(sqlstore),
- Dashboard: impldashboard.NewModule(sqlstore),
- User: impluser.NewModule(impluser.NewStore(sqlstore, providerSettings), jwt, emailing, providerSettings),
- QuickFilter: implquickfilter.NewModule(implquickfilter.NewStore(sqlstore)),
+ OrgGetter: orgGetter,
+ OrgSetter: orgSetter,
+ Preference: implpreference.NewModule(implpreference.NewStore(sqlstore), preferencetypes.NewDefaultPreferenceMap()),
+ SavedView: implsavedview.NewModule(sqlstore),
+ Apdex: implapdex.NewModule(sqlstore),
+ Dashboard: impldashboard.NewModule(sqlstore),
+ User: user,
+ QuickFilter: quickfilter,
+ TraceFunnel: impltracefunnel.NewModule(impltracefunnel.NewStore(sqlstore)),
}
}
diff --git a/pkg/signoz/module_test.go b/pkg/signoz/module_test.go
index 67f6aa23b6..f18596b059 100644
--- a/pkg/signoz/module_test.go
+++ b/pkg/signoz/module_test.go
@@ -1,27 +1,39 @@
package signoz
import (
+ "context"
"reflect"
"testing"
"time"
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/SigNoz/signoz/pkg/alertmanager"
+ "github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
"github.com/SigNoz/signoz/pkg/emailing/emailingtest"
"github.com/SigNoz/signoz/pkg/factory/factorytest"
+ "github.com/SigNoz/signoz/pkg/modules/organization/implorganization"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/sharder/noopsharder"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/sqlstore/sqlstoretest"
"github.com/SigNoz/signoz/pkg/types/authtypes"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
)
// This is a test to ensure that all fields of the modules are initialized.
// It also helps us catch these errors at compile time instead of runtime.
func TestNewModules(t *testing.T) {
sqlstore := sqlstoretest.New(sqlstore.Config{Provider: "sqlite"}, sqlmock.QueryMatcherEqual)
+ providerSettings := factorytest.NewSettings()
+ sharder, err := noopsharder.New(context.TODO(), providerSettings, sharder.Config{})
+ require.NoError(t, err)
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(sqlstore), sharder)
+ alertmanager, err := signozalertmanager.New(context.TODO(), providerSettings, alertmanager.Config{}, sqlstore, orgGetter)
+ require.NoError(t, err)
jwt := authtypes.NewJWT("", 1*time.Hour, 1*time.Hour)
emailing := emailingtest.New()
- providerSettings := factorytest.NewSettings()
- modules := NewModules(sqlstore, jwt, emailing, providerSettings)
+ modules := NewModules(sqlstore, jwt, emailing, providerSettings, orgGetter, alertmanager)
reflectVal := reflect.ValueOf(modules)
for i := 0; i < reflectVal.NumField(); i++ {
diff --git a/pkg/signoz/provider.go b/pkg/signoz/provider.go
index 831d2e2a62..6076890333 100644
--- a/pkg/signoz/provider.go
+++ b/pkg/signoz/provider.go
@@ -11,8 +11,12 @@ import (
"github.com/SigNoz/signoz/pkg/emailing/noopemailing"
"github.com/SigNoz/signoz/pkg/emailing/smtpemailing"
"github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
"github.com/SigNoz/signoz/pkg/prometheus"
"github.com/SigNoz/signoz/pkg/prometheus/clickhouseprometheus"
+ "github.com/SigNoz/signoz/pkg/sharder"
+ "github.com/SigNoz/signoz/pkg/sharder/noopsharder"
+ "github.com/SigNoz/signoz/pkg/sharder/singlesharder"
"github.com/SigNoz/signoz/pkg/sqlmigration"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/sqlstore/sqlitesqlstore"
@@ -83,6 +87,8 @@ func NewSQLMigrationProviderFactories(sqlstore sqlstore.SQLStore) factory.NamedM
sqlmigration.NewUpdateLicenseFactory(sqlstore),
sqlmigration.NewMigratePATToFactorAPIKey(sqlstore),
sqlmigration.NewUpdateApiMonitoringFiltersFactory(sqlstore),
+ sqlmigration.NewAddKeyOrganizationFactory(sqlstore),
+ sqlmigration.NewAddTraceFunnelsFactory(sqlstore),
)
}
@@ -98,10 +104,10 @@ func NewPrometheusProviderFactories(telemetryStore telemetrystore.TelemetryStore
)
}
-func NewAlertmanagerProviderFactories(sqlstore sqlstore.SQLStore) factory.NamedMap[factory.ProviderFactory[alertmanager.Alertmanager, alertmanager.Config]] {
+func NewAlertmanagerProviderFactories(sqlstore sqlstore.SQLStore, orgGetter organization.Getter) factory.NamedMap[factory.ProviderFactory[alertmanager.Alertmanager, alertmanager.Config]] {
return factory.MustNewNamedMap(
- legacyalertmanager.NewFactory(sqlstore),
- signozalertmanager.NewFactory(sqlstore),
+ legacyalertmanager.NewFactory(sqlstore, orgGetter),
+ signozalertmanager.NewFactory(sqlstore, orgGetter),
)
}
@@ -111,3 +117,10 @@ func NewEmailingProviderFactories() factory.NamedMap[factory.ProviderFactory[ema
smtpemailing.NewFactory(),
)
}
+
+func NewSharderProviderFactories() factory.NamedMap[factory.ProviderFactory[sharder.Sharder, sharder.Config]] {
+ return factory.MustNewNamedMap(
+ singlesharder.NewFactory(),
+ noopsharder.NewFactory(),
+ )
+}
diff --git a/pkg/signoz/provider_test.go b/pkg/signoz/provider_test.go
index 7245d50f66..752ff19db8 100644
--- a/pkg/signoz/provider_test.go
+++ b/pkg/signoz/provider_test.go
@@ -4,6 +4,7 @@ import (
"testing"
"github.com/DATA-DOG/go-sqlmock"
+ "github.com/SigNoz/signoz/pkg/modules/organization/implorganization"
"github.com/SigNoz/signoz/pkg/sqlstore"
"github.com/SigNoz/signoz/pkg/sqlstore/sqlstoretest"
"github.com/SigNoz/signoz/pkg/telemetrystore"
@@ -40,10 +41,15 @@ func TestNewProviderFactories(t *testing.T) {
})
assert.NotPanics(t, func() {
- NewAlertmanagerProviderFactories(sqlstoretest.New(sqlstore.Config{Provider: "sqlite"}, sqlmock.QueryMatcherEqual))
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(sqlstoretest.New(sqlstore.Config{Provider: "sqlite"}, sqlmock.QueryMatcherEqual)), nil)
+ NewAlertmanagerProviderFactories(sqlstoretest.New(sqlstore.Config{Provider: "sqlite"}, sqlmock.QueryMatcherEqual), orgGetter)
})
assert.NotPanics(t, func() {
NewEmailingProviderFactories()
})
+
+ assert.NotPanics(t, func() {
+ NewSharderProviderFactories()
+ })
}
diff --git a/pkg/signoz/signoz.go b/pkg/signoz/signoz.go
index 748b4af9b4..919520b5b3 100644
--- a/pkg/signoz/signoz.go
+++ b/pkg/signoz/signoz.go
@@ -9,7 +9,10 @@ import (
"github.com/SigNoz/signoz/pkg/factory"
"github.com/SigNoz/signoz/pkg/instrumentation"
"github.com/SigNoz/signoz/pkg/licensing"
+ "github.com/SigNoz/signoz/pkg/modules/organization"
+ "github.com/SigNoz/signoz/pkg/modules/organization/implorganization"
"github.com/SigNoz/signoz/pkg/prometheus"
+ "github.com/SigNoz/signoz/pkg/sharder"
"github.com/SigNoz/signoz/pkg/sqlmigration"
"github.com/SigNoz/signoz/pkg/sqlmigrator"
"github.com/SigNoz/signoz/pkg/sqlstore"
@@ -33,6 +36,7 @@ type SigNoz struct {
Zeus zeus.Zeus
Licensing licensing.Licensing
Emailing emailing.Emailing
+ Sharder sharder.Sharder
Modules Modules
Handlers Handlers
}
@@ -44,7 +48,7 @@ func New(
zeusConfig zeus.Config,
zeusProviderFactory factory.ProviderFactory[zeus.Zeus, zeus.Config],
licenseConfig licensing.Config,
- licenseProviderFactoryCb func(sqlstore.SQLStore, zeus.Zeus) factory.ProviderFactory[licensing.Licensing, licensing.Config],
+ licenseProviderFactoryCb func(sqlstore.SQLStore, zeus.Zeus, organization.Getter) factory.ProviderFactory[licensing.Licensing, licensing.Config],
emailingProviderFactories factory.NamedMap[factory.ProviderFactory[emailing.Emailing, emailing.Config]],
cacheProviderFactories factory.NamedMap[factory.ProviderFactory[cache.Cache, cache.Config]],
webProviderFactories factory.NamedMap[factory.ProviderFactory[web.Web, web.Config]],
@@ -162,19 +166,34 @@ func New(
return nil, err
}
+ // Initialize sharder from the available sharder provider factories
+ sharder, err := factory.NewProviderFromNamedMap(
+ ctx,
+ providerSettings,
+ config.Sharder,
+ NewSharderProviderFactories(),
+ config.Sharder.Provider,
+ )
+ if err != nil {
+ return nil, err
+ }
+
+ // Initialize organization getter
+ orgGetter := implorganization.NewGetter(implorganization.NewStore(sqlstore), sharder)
+
// Initialize alertmanager from the available alertmanager provider factories
alertmanager, err := factory.NewProviderFromNamedMap(
ctx,
providerSettings,
config.Alertmanager,
- NewAlertmanagerProviderFactories(sqlstore),
+ NewAlertmanagerProviderFactories(sqlstore, orgGetter),
config.Alertmanager.Provider,
)
if err != nil {
return nil, err
}
- licensingProviderFactory := licenseProviderFactoryCb(sqlstore, zeus)
+ licensingProviderFactory := licenseProviderFactoryCb(sqlstore, zeus, orgGetter)
licensing, err := licensingProviderFactory.New(
ctx,
providerSettings,
@@ -185,7 +204,7 @@ func New(
}
// Initialize all modules
- modules := NewModules(sqlstore, jwt, emailing, providerSettings)
+ modules := NewModules(sqlstore, jwt, emailing, providerSettings, orgGetter, alertmanager)
// Initialize all handlers for the modules
handlers := NewHandlers(modules)
@@ -212,6 +231,7 @@ func New(
Zeus: zeus,
Licensing: licensing,
Emailing: emailing,
+ Sharder: sharder,
Modules: modules,
Handlers: handlers,
}, nil
diff --git a/pkg/sqlmigration/036_add_key_organization.go b/pkg/sqlmigration/036_add_key_organization.go
new file mode 100644
index 0000000000..753736a0ed
--- /dev/null
+++ b/pkg/sqlmigration/036_add_key_organization.go
@@ -0,0 +1,112 @@
+package sqlmigration
+
+import (
+ "context"
+ "hash/fnv"
+
+ "github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/sqlstore"
+ "github.com/uptrace/bun"
+ "github.com/uptrace/bun/migrate"
+)
+
+type addKeyOrganization struct {
+ sqlstore sqlstore.SQLStore
+}
+
+func NewAddKeyOrganizationFactory(sqlstore sqlstore.SQLStore) factory.ProviderFactory[SQLMigration, Config] {
+ return factory.NewProviderFactory(factory.MustNewName("add_key_organization"), func(ctx context.Context, providerSettings factory.ProviderSettings, config Config) (SQLMigration, error) {
+ return newAddKeyOrganization(ctx, providerSettings, config, sqlstore)
+ })
+}
+
+func newAddKeyOrganization(_ context.Context, _ factory.ProviderSettings, _ Config, sqlstore sqlstore.SQLStore) (SQLMigration, error) {
+ return &addKeyOrganization{
+ sqlstore: sqlstore,
+ }, nil
+}
+
+func (migration *addKeyOrganization) Register(migrations *migrate.Migrations) error {
+ if err := migrations.Register(migration.Up, migration.Down); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (migration *addKeyOrganization) Up(ctx context.Context, db *bun.DB) error {
+ ok, err := migration.sqlstore.Dialect().ColumnExists(ctx, db, "organizations", "key")
+ if err != nil {
+ return err
+ }
+
+ if ok {
+ return nil
+ }
+
+ tx, err := db.BeginTx(ctx, nil)
+ if err != nil {
+ return err
+ }
+
+ defer func() {
+ _ = tx.Rollback()
+ }()
+
+ if _, err := tx.
+ NewAddColumn().
+ Table("organizations").
+ ColumnExpr("key BIGINT").
+ Exec(ctx); err != nil {
+ return err
+ }
+
+ var existingOrgIDs []string
+ if err := tx.NewSelect().
+ Table("organizations").
+ Column("id").
+ Scan(ctx, &existingOrgIDs); err != nil {
+ return err
+ }
+
+ for _, orgID := range existingOrgIDs {
+ key := migration.getHash(ctx, orgID)
+ if _, err := tx.
+ NewUpdate().
+ Table("organizations").
+ Set("key = ?", key).
+ Where("id = ?", orgID).
+ Exec(ctx); err != nil {
+ return err
+ }
+ }
+
+ if _, err := tx.
+ NewCreateIndex().
+ Unique().
+ IfNotExists().
+ Index("idx_unique_key").
+ Table("organizations").
+ Column("key").
+ Exec(ctx); err != nil {
+ return err
+ }
+
+ if err := tx.Commit(); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (migration *addKeyOrganization) Down(ctx context.Context, db *bun.DB) error {
+ return nil
+}
+
+func (migration *addKeyOrganization) getHash(_ context.Context, orgID string) uint32 {
+ hasher := fnv.New32a()
+
+ // Hasher never returns err.
+ _, _ = hasher.Write([]byte(orgID))
+ return hasher.Sum32()
+}
diff --git a/pkg/sqlmigration/037_add_trace_funnels.go b/pkg/sqlmigration/037_add_trace_funnels.go
new file mode 100644
index 0000000000..99a885b1cf
--- /dev/null
+++ b/pkg/sqlmigration/037_add_trace_funnels.go
@@ -0,0 +1,89 @@
+package sqlmigration
+
+import (
+ "context"
+ "github.com/SigNoz/signoz/pkg/factory"
+ "github.com/SigNoz/signoz/pkg/sqlstore"
+ "github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/valuer"
+ "github.com/uptrace/bun"
+ "github.com/uptrace/bun/migrate"
+)
+
+// funnel Core Data Structure (funnel and funnelStep)
+type funnel struct {
+ bun.BaseModel `bun:"table:trace_funnel"`
+ types.Identifiable // funnel id
+ types.TimeAuditable
+ types.UserAuditable
+ Name string `json:"funnel_name" bun:"name,type:text,notnull"` // funnel name
+ Description string `json:"description" bun:"description,type:text"` // funnel description
+ OrgID valuer.UUID `json:"org_id" bun:"org_id,type:varchar,notnull"`
+ Steps []funnelStep `json:"steps" bun:"steps,type:text,notnull"`
+ Tags string `json:"tags" bun:"tags,type:text"`
+ CreatedByUser *types.User `json:"user" bun:"rel:belongs-to,join:created_by=id"`
+}
+
+type funnelStep struct {
+ types.Identifiable
+ Name string `json:"name,omitempty"` // step name
+ Description string `json:"description,omitempty"` // step description
+ Order int64 `json:"step_order"`
+ ServiceName string `json:"service_name"`
+ SpanName string `json:"span_name"`
+ Filters string `json:"filters,omitempty"`
+ LatencyPointer string `json:"latency_pointer,omitempty"`
+ LatencyType string `json:"latency_type,omitempty"`
+ HasErrors bool `json:"has_errors"`
+}
+
+type addTraceFunnels struct {
+ sqlstore sqlstore.SQLStore
+}
+
+func NewAddTraceFunnelsFactory(sqlstore sqlstore.SQLStore) factory.ProviderFactory[SQLMigration, Config] {
+ return factory.NewProviderFactory(factory.MustNewName("add_trace_funnels"), func(ctx context.Context, providerSettings factory.ProviderSettings, config Config) (SQLMigration, error) {
+ return newAddTraceFunnels(ctx, providerSettings, config, sqlstore)
+ })
+}
+
+func newAddTraceFunnels(_ context.Context, _ factory.ProviderSettings, _ Config, sqlstore sqlstore.SQLStore) (SQLMigration, error) {
+ return &addTraceFunnels{sqlstore: sqlstore}, nil
+}
+
+func (migration *addTraceFunnels) Register(migrations *migrate.Migrations) error {
+ if err := migrations.Register(migration.Up, migration.Down); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (migration *addTraceFunnels) Up(ctx context.Context, db *bun.DB) error {
+ tx, err := db.BeginTx(ctx, nil)
+ if err != nil {
+ return err
+ }
+ defer func() {
+ _ = tx.Rollback()
+ }()
+
+ _, err = tx.NewCreateTable().
+ Model(new(funnel)).
+ ForeignKey(`("org_id") REFERENCES "organizations" ("id") ON DELETE CASCADE`).
+ IfNotExists().
+ Exec(ctx)
+ if err != nil {
+ return err
+ }
+
+ err = tx.Commit()
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (migration *addTraceFunnels) Down(ctx context.Context, db *bun.DB) error {
+ return nil
+}
diff --git a/pkg/types/alertmanagertypes/config.go b/pkg/types/alertmanagertypes/config.go
index 21657fa1da..2cc7adf1bd 100644
--- a/pkg/types/alertmanagertypes/config.go
+++ b/pkg/types/alertmanagertypes/config.go
@@ -369,9 +369,6 @@ type ConfigStore interface {
// Get returns the config for the given orgID
Get(context.Context, string) (*Config, error)
- // ListOrgs returns the list of orgs
- ListOrgs(context.Context) ([]string, error)
-
// CreateChannel creates a new channel.
CreateChannel(context.Context, *Channel, ...StoreOption) error
diff --git a/pkg/types/apdextypes/settings.go b/pkg/types/apdextypes/settings.go
new file mode 100644
index 0000000000..d08a1a7ee0
--- /dev/null
+++ b/pkg/types/apdextypes/settings.go
@@ -0,0 +1,15 @@
+package apdextypes
+
+import (
+ "github.com/SigNoz/signoz/pkg/types"
+ "github.com/uptrace/bun"
+)
+
+type Settings struct {
+ bun.BaseModel `bun:"table:apdex_setting"`
+ types.Identifiable
+ OrgID string `bun:"org_id,type:text" json:"orgId"`
+ ServiceName string `bun:"service_name,type:text" json:"serviceName"`
+ Threshold float64 `bun:"threshold,type:float,notnull" json:"threshold"`
+ ExcludeStatusCodes string `bun:"exclude_status_codes,type:text,notnull" json:"excludeStatusCodes"`
+}
diff --git a/pkg/types/licensetypes/license.go b/pkg/types/licensetypes/license.go
index 55e4204238..d78c45585a 100644
--- a/pkg/types/licensetypes/license.go
+++ b/pkg/types/licensetypes/license.go
@@ -87,9 +87,6 @@ func GetActiveLicenseFromStorableLicenses(storableLicenses []*StorableLicense, o
return nil, err
}
- if license.Status == "INVALID" {
- continue
- }
if activeLicense == nil &&
(license.ValidFrom != 0) &&
(license.ValidUntil == -1 || license.ValidUntil > time.Now().Unix()) {
@@ -383,7 +380,4 @@ type Store interface {
GetFeature(context.Context, string) (*featuretypes.StorableFeature, error)
GetAllFeatures(context.Context) ([]*featuretypes.StorableFeature, error)
UpdateFeature(context.Context, *featuretypes.StorableFeature) error
-
- // ListOrganizations returns the list of orgs
- ListOrganizations(context.Context) ([]valuer.UUID, error)
}
diff --git a/pkg/types/organization.go b/pkg/types/organization.go
index d18e149890..2c177b2cbf 100644
--- a/pkg/types/organization.go
+++ b/pkg/types/organization.go
@@ -2,6 +2,7 @@ package types
import (
"context"
+ "hash/fnv"
"time"
"github.com/SigNoz/signoz/pkg/errors"
@@ -20,13 +21,15 @@ type Organization struct {
Identifiable
Name string `bun:"name,type:text,nullzero" json:"name"`
Alias string `bun:"alias,type:text,nullzero" json:"alias"`
+ Key uint32 `bun:"key,type:bigint,notnull" json:"key"`
DisplayName string `bun:"display_name,type:text,notnull" json:"displayName"`
}
func NewOrganization(displayName string) *Organization {
+ id := valuer.GenerateUUID()
return &Organization{
Identifiable: Identifiable{
- ID: valuer.GenerateUUID(),
+ ID: id,
},
TimeAuditable: TimeAuditable{
CreatedAt: time.Now(),
@@ -34,22 +37,23 @@ func NewOrganization(displayName string) *Organization {
},
// Name: "default/main", TODO: take the call and uncomment this later
DisplayName: displayName,
+ Key: NewOrganizationKey(id),
}
}
-type ApdexSettings struct {
- bun.BaseModel `bun:"table:apdex_setting"`
- Identifiable
- OrgID string `bun:"org_id,type:text" json:"orgId"`
- ServiceName string `bun:"service_name,type:text" json:"serviceName"`
- Threshold float64 `bun:"threshold,type:float,notnull" json:"threshold"`
- ExcludeStatusCodes string `bun:"exclude_status_codes,type:text,notnull" json:"excludeStatusCodes"`
+func NewOrganizationKey(orgID valuer.UUID) uint32 {
+ hasher := fnv.New32a()
+
+ // Hasher never returns err.
+ _, _ = hasher.Write([]byte(orgID.String()))
+ return hasher.Sum32()
}
type OrganizationStore interface {
Create(context.Context, *Organization) error
Get(context.Context, valuer.UUID) (*Organization, error)
GetAll(context.Context) ([]*Organization, error)
+ ListByKeyRange(context.Context, uint32, uint32) ([]*Organization, error)
Update(context.Context, *Organization) error
Delete(context.Context, valuer.UUID) error
}
diff --git a/pkg/types/ruletypes/rule.go b/pkg/types/ruletypes/rule.go
index 55fcc801e6..ffe5774f27 100644
--- a/pkg/types/ruletypes/rule.go
+++ b/pkg/types/ruletypes/rule.go
@@ -31,5 +31,4 @@ type RuleStore interface {
GetStoredRules(context.Context, string) ([]*Rule, error)
GetStoredRule(context.Context, valuer.UUID) (*Rule, error)
GetRuleUUID(context.Context, int) (*RuleHistory, error)
- ListOrgs(context.Context) ([]valuer.UUID, error)
}
diff --git a/pkg/types/tracefunneltypes/store.go b/pkg/types/tracefunneltypes/store.go
new file mode 100644
index 0000000000..ba000410e0
--- /dev/null
+++ b/pkg/types/tracefunneltypes/store.go
@@ -0,0 +1,15 @@
+package tracefunneltypes
+
+import (
+ "context"
+
+ "github.com/SigNoz/signoz/pkg/valuer"
+)
+
+type FunnelStore interface {
+ Create(context.Context, *StorableFunnel) error
+ Get(context.Context, valuer.UUID, valuer.UUID) (*StorableFunnel, error)
+ List(context.Context, valuer.UUID) ([]*StorableFunnel, error)
+ Update(context.Context, *StorableFunnel) error
+ Delete(context.Context, valuer.UUID, valuer.UUID) error
+}
diff --git a/pkg/types/tracefunneltypes/tracefunnel.go b/pkg/types/tracefunneltypes/tracefunnel.go
new file mode 100644
index 0000000000..fdc51d943a
--- /dev/null
+++ b/pkg/types/tracefunneltypes/tracefunnel.go
@@ -0,0 +1,98 @@
+package tracefunneltypes
+
+import (
+ "github.com/SigNoz/signoz/pkg/errors"
+ v3 "github.com/SigNoz/signoz/pkg/query-service/model/v3"
+ "github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/valuer"
+ "github.com/uptrace/bun"
+)
+
+var (
+ ErrFunnelAlreadyExists = errors.MustNewCode("funnel_already_exists")
+)
+
+// StorableFunnel Core Data Structure (StorableFunnel and FunnelStep)
+type StorableFunnel struct {
+ types.Identifiable
+ types.TimeAuditable
+ types.UserAuditable
+ bun.BaseModel `bun:"table:trace_funnel"`
+ Name string `json:"funnel_name" bun:"name,type:text,notnull"`
+ Description string `json:"description" bun:"description,type:text"`
+ OrgID valuer.UUID `json:"org_id" bun:"org_id,type:varchar,notnull"`
+ Steps []*FunnelStep `json:"steps" bun:"steps,type:text,notnull"`
+ Tags string `json:"tags" bun:"tags,type:text"`
+ CreatedByUser *types.User `json:"user" bun:"rel:belongs-to,join:created_by=id"`
+}
+
+type FunnelStep struct {
+ ID valuer.UUID `json:"id,omitempty"`
+ Name string `json:"name,omitempty"` // step name
+ Description string `json:"description,omitempty"` // step description
+ Order int64 `json:"step_order"`
+ ServiceName string `json:"service_name"`
+ SpanName string `json:"span_name"`
+ Filters *v3.FilterSet `json:"filters,omitempty"`
+ LatencyPointer string `json:"latency_pointer,omitempty"`
+ LatencyType string `json:"latency_type,omitempty"`
+ HasErrors bool `json:"has_errors"`
+}
+
+// PostableFunnel represents all possible funnel-related requests
+type PostableFunnel struct {
+ FunnelID valuer.UUID `json:"funnel_id,omitempty"`
+ Name string `json:"funnel_name,omitempty"`
+ Timestamp int64 `json:"timestamp,omitempty"`
+ Description string `json:"description,omitempty"`
+ Steps []*FunnelStep `json:"steps,omitempty"`
+ UserID string `json:"user_id,omitempty"`
+
+ // Analytics specific fields
+ StartTime int64 `json:"start_time,omitempty"`
+ EndTime int64 `json:"end_time,omitempty"`
+ StepAOrder int64 `json:"step_a_order,omitempty"`
+ StepBOrder int64 `json:"step_b_order,omitempty"`
+}
+
+// GettableFunnel represents all possible funnel-related responses
+type GettableFunnel struct {
+ FunnelID string `json:"funnel_id,omitempty"`
+ FunnelName string `json:"funnel_name,omitempty"`
+ Description string `json:"description,omitempty"`
+ CreatedAt int64 `json:"created_at,omitempty"`
+ CreatedBy string `json:"created_by,omitempty"`
+ UpdatedAt int64 `json:"updated_at,omitempty"`
+ UpdatedBy string `json:"updated_by,omitempty"`
+ OrgID string `json:"org_id,omitempty"`
+ UserEmail string `json:"user_email,omitempty"`
+ Funnel *StorableFunnel `json:"funnel,omitempty"`
+ Steps []*FunnelStep `json:"steps,omitempty"`
+}
+
+// TimeRange represents a time range for analytics
+type TimeRange struct {
+ StartTime int64 `json:"start_time"`
+ EndTime int64 `json:"end_time"`
+}
+
+// StepTransitionRequest represents a request for step transition analytics
+type StepTransitionRequest struct {
+ TimeRange
+ StepStart int64 `json:"step_start,omitempty"`
+ StepEnd int64 `json:"step_end,omitempty"`
+}
+
+// UserInfo represents basic user information
+type UserInfo struct {
+ ID string `json:"id"`
+ Email string `json:"email"`
+}
+
+type FunnelStepFilter struct {
+ StepNumber int
+ ServiceName string
+ SpanName string
+ LatencyPointer string // "start" or "end"
+ CustomFilters *v3.FilterSet
+}
diff --git a/pkg/types/tracefunneltypes/utils.go b/pkg/types/tracefunneltypes/utils.go
new file mode 100644
index 0000000000..60ca4eaf36
--- /dev/null
+++ b/pkg/types/tracefunneltypes/utils.go
@@ -0,0 +1,139 @@
+package tracefunneltypes
+
+import (
+ "fmt"
+ "sort"
+ "time"
+
+ "github.com/SigNoz/signoz/pkg/errors"
+ "github.com/SigNoz/signoz/pkg/types/authtypes"
+ "github.com/SigNoz/signoz/pkg/valuer"
+)
+
+// ValidateTimestamp validates a timestamp
+func ValidateTimestamp(timestamp int64, fieldName string) error {
+ if timestamp == 0 {
+ return fmt.Errorf("%s is required", fieldName)
+ }
+ if timestamp < 0 {
+ return fmt.Errorf("%s must be positive", fieldName)
+ }
+ return nil
+}
+
+// ValidateTimestampIsMilliseconds validates that a timestamp is in milliseconds
+func ValidateTimestampIsMilliseconds(timestamp int64) bool {
+ return timestamp >= 1000000000000 && timestamp <= 9999999999999
+}
+
+func ValidateFunnelSteps(steps []*FunnelStep) error {
+ if len(steps) < 2 {
+ return fmt.Errorf("funnel must have at least 2 steps")
+ }
+
+ for i, step := range steps {
+ if step.ServiceName == "" {
+ return fmt.Errorf("step %d: service name is required", i+1)
+ }
+ if step.SpanName == "" {
+ return fmt.Errorf("step %d: span name is required", i+1)
+ }
+ if step.Order < 0 {
+ return fmt.Errorf("step %d: order must be non-negative", i+1)
+ }
+ }
+
+ return nil
+}
+
+// NormalizeFunnelSteps normalizes step orders to be sequential starting from 1.
+// The function takes a slice of pointers to FunnelStep and returns a new slice with normalized step orders.
+// The input slice is left unchanged. If the input slice contains nil pointers, they will be filtered out.
+// Returns an empty slice if the input is empty or contains only nil pointers.
+func NormalizeFunnelSteps(steps []*FunnelStep) []*FunnelStep {
+ if len(steps) == 0 {
+ return []*FunnelStep{}
+ }
+
+ // Filter out nil pointers and create a new slice
+ validSteps := make([]*FunnelStep, 0, len(steps))
+ for _, step := range steps {
+ if step != nil {
+ validSteps = append(validSteps, step)
+ }
+ }
+
+ if len(validSteps) == 0 {
+ return []*FunnelStep{}
+ }
+
+ // Create a defensive copy of the valid steps
+ newSteps := make([]*FunnelStep, len(validSteps))
+ for i, step := range validSteps {
+ // Create a copy of each step to avoid modifying the original
+ stepCopy := *step
+ newSteps[i] = &stepCopy
+ }
+
+ sort.Slice(newSteps, func(i, j int) bool {
+ return newSteps[i].Order < newSteps[j].Order
+ })
+
+ for i := range newSteps {
+ newSteps[i].Order = int64(i + 1)
+ }
+
+ return newSteps
+}
+
+func ValidateAndConvertTimestamp(timestamp int64) (time.Time, error) {
+ if err := ValidateTimestamp(timestamp, "timestamp"); err != nil {
+ return time.Time{}, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "timestamp is invalid: %v", err)
+ }
+ return time.Unix(0, timestamp*1000000), nil // Convert to nanoseconds
+}
+
+func ConstructFunnelResponse(funnel *StorableFunnel, claims *authtypes.Claims) GettableFunnel {
+ resp := GettableFunnel{
+ FunnelName: funnel.Name,
+ FunnelID: funnel.ID.String(),
+ Steps: funnel.Steps,
+ CreatedAt: funnel.CreatedAt.UnixNano() / 1000000,
+ CreatedBy: funnel.CreatedBy,
+ OrgID: funnel.OrgID.String(),
+ UpdatedBy: funnel.UpdatedBy,
+ UpdatedAt: funnel.UpdatedAt.UnixNano() / 1000000,
+ Description: funnel.Description,
+ }
+
+ if funnel.CreatedByUser != nil {
+ resp.UserEmail = funnel.CreatedByUser.Email
+ } else if claims != nil {
+ resp.UserEmail = claims.Email
+ }
+
+ return resp
+}
+
+func ProcessFunnelSteps(steps []*FunnelStep) ([]*FunnelStep, error) {
+ // First validate the steps
+ if err := ValidateFunnelSteps(steps); err != nil {
+ return nil, errors.Newf(errors.TypeInvalidInput,
+ errors.CodeInvalidInput,
+ "invalid funnel steps: %v", err)
+ }
+
+ // Then process the steps
+ for i := range steps {
+ if steps[i].Order < 1 {
+ steps[i].Order = int64(i + 1)
+ }
+ if steps[i].ID.IsZero() {
+ steps[i].ID = valuer.GenerateUUID()
+ }
+ }
+
+ return NormalizeFunnelSteps(steps), nil
+}
diff --git a/pkg/types/tracefunneltypes/utils_test.go b/pkg/types/tracefunneltypes/utils_test.go
new file mode 100644
index 0000000000..cf345d92b5
--- /dev/null
+++ b/pkg/types/tracefunneltypes/utils_test.go
@@ -0,0 +1,698 @@
+package tracefunneltypes
+
+import (
+ "net/http"
+ "net/http/httptest"
+ "testing"
+ "time"
+
+ "github.com/SigNoz/signoz/pkg/types"
+ "github.com/SigNoz/signoz/pkg/types/authtypes"
+ "github.com/SigNoz/signoz/pkg/valuer"
+ "github.com/stretchr/testify/assert"
+)
+
+func TestValidateTimestamp(t *testing.T) {
+ tests := []struct {
+ name string
+ timestamp int64
+ fieldName string
+ expectError bool
+ }{
+ {
+ name: "valid timestamp",
+ timestamp: time.Now().UnixMilli(),
+ fieldName: "timestamp",
+ expectError: false,
+ },
+ {
+ name: "zero timestamp",
+ timestamp: 0,
+ fieldName: "timestamp",
+ expectError: true,
+ },
+ {
+ name: "negative timestamp",
+ timestamp: -1,
+ fieldName: "timestamp",
+ expectError: true,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ err := ValidateTimestamp(tt.timestamp, tt.fieldName)
+ if tt.expectError {
+ assert.Error(t, err)
+ } else {
+ assert.NoError(t, err)
+ }
+ })
+ }
+}
+
+func TestValidateTimestampIsMilliseconds(t *testing.T) {
+ tests := []struct {
+ name string
+ timestamp int64
+ expected bool
+ }{
+ {
+ name: "valid millisecond timestamp",
+ timestamp: 1700000000000, // 2023-11-14 12:00:00 UTC
+ expected: true,
+ },
+ {
+ name: "too small timestamp",
+ timestamp: 999999999999,
+ expected: false,
+ },
+ {
+ name: "too large timestamp",
+ timestamp: 10000000000000,
+ expected: false,
+ },
+ {
+ name: "second precision timestamp",
+ timestamp: 1700000000,
+ expected: false,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := ValidateTimestampIsMilliseconds(tt.timestamp)
+ assert.Equal(t, tt.expected, result)
+ })
+ }
+}
+
+func TestValidateFunnelSteps(t *testing.T) {
+ tests := []struct {
+ name string
+ steps []*FunnelStep
+ expectError bool
+ }{
+ {
+ name: "valid steps",
+ steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ expectError: false,
+ },
+ {
+ name: "too few steps",
+ steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ },
+ expectError: true,
+ },
+ {
+ name: "missing service name",
+ steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ expectError: true,
+ },
+ {
+ name: "missing span name",
+ steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ Order: 1,
+ },
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ expectError: true,
+ },
+ {
+ name: "negative order",
+ steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: -1,
+ },
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ expectError: true,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ err := ValidateFunnelSteps(tt.steps)
+ if tt.expectError {
+ assert.Error(t, err)
+ } else {
+ assert.NoError(t, err)
+ }
+ })
+ }
+}
+
+func TestNormalizeFunnelSteps(t *testing.T) {
+ tests := []struct {
+ name string
+ steps []*FunnelStep
+ expected []*FunnelStep
+ }{
+ {
+ name: "already normalized steps",
+ steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ expected: []*FunnelStep{
+ {
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ {
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ },
+ {
+ name: "unordered steps",
+ steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ },
+ expected: []*FunnelStep{
+ {
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ {
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ },
+ {
+ name: "steps with gaps in order",
+ steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 3",
+ ServiceName: "test-service",
+ SpanName: "test-span-3",
+ Order: 3,
+ },
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ expected: []*FunnelStep{
+ {
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ {
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ {
+ Name: "Step 3",
+ ServiceName: "test-service",
+ SpanName: "test-span-3",
+ Order: 3,
+ },
+ },
+ },
+ {
+ name: "steps with nil pointers",
+ steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ nil,
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ expected: []*FunnelStep{
+ {
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ {
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ },
+ {
+ name: "empty steps",
+ steps: []*FunnelStep{},
+ expected: []*FunnelStep{},
+ },
+ {
+ name: "all nil steps",
+ steps: []*FunnelStep{nil, nil},
+ expected: []*FunnelStep{},
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := NormalizeFunnelSteps(tt.steps)
+
+ // Compare only the relevant fields
+ assert.Len(t, result, len(tt.expected))
+ for i := range result {
+ assert.Equal(t, tt.expected[i].Name, result[i].Name)
+ assert.Equal(t, tt.expected[i].ServiceName, result[i].ServiceName)
+ assert.Equal(t, tt.expected[i].SpanName, result[i].SpanName)
+ assert.Equal(t, tt.expected[i].Order, result[i].Order)
+ }
+ })
+ }
+}
+
+func TestGetClaims(t *testing.T) {
+ tests := []struct {
+ name string
+ setup func(*http.Request)
+ expectError bool
+ }{
+ {
+ name: "valid claims",
+ setup: func(r *http.Request) {
+ claims := authtypes.Claims{
+ UserID: "user-123",
+ OrgID: "org-123",
+ Email: "test@example.com",
+ }
+ *r = *r.WithContext(authtypes.NewContextWithClaims(r.Context(), claims))
+ },
+ expectError: false,
+ },
+ {
+ name: "no claims in context",
+ setup: func(r *http.Request) {
+ claims := authtypes.Claims{}
+ *r = *r.WithContext(authtypes.NewContextWithClaims(r.Context(), claims))
+ },
+ expectError: true,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ req := httptest.NewRequest("GET", "/", nil)
+ tt.setup(req)
+
+ claims, err := authtypes.ClaimsFromContext(req.Context())
+ if tt.expectError {
+ assert.Equal(t, authtypes.Claims{}, claims)
+ } else {
+ assert.NoError(t, err)
+ assert.NotNil(t, claims)
+ assert.Equal(t, "user-123", claims.UserID)
+ assert.Equal(t, "org-123", claims.OrgID)
+ assert.Equal(t, "test@example.com", claims.Email)
+ }
+ })
+ }
+}
+
+func TestValidateAndConvertTimestamp(t *testing.T) {
+ tests := []struct {
+ name string
+ timestamp int64
+ expectError bool
+ }{
+ {
+ name: "valid timestamp",
+ timestamp: time.Now().UnixMilli(),
+ expectError: false,
+ },
+ {
+ name: "zero timestamp",
+ timestamp: 0,
+ expectError: true,
+ },
+ {
+ name: "negative timestamp",
+ timestamp: -1,
+ expectError: true,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result, err := ValidateAndConvertTimestamp(tt.timestamp)
+ if tt.expectError {
+ assert.Error(t, err)
+ assert.True(t, result.IsZero())
+ } else {
+ assert.NoError(t, err)
+ assert.False(t, result.IsZero())
+ // Verify the conversion from milliseconds to nanoseconds
+ assert.Equal(t, tt.timestamp*1000000, result.UnixNano())
+ }
+ })
+ }
+}
+
+func TestConstructFunnelResponse(t *testing.T) {
+ now := time.Now()
+ funnelID := valuer.GenerateUUID()
+ orgID := valuer.GenerateUUID()
+ userID := valuer.GenerateUUID()
+
+ tests := []struct {
+ name string
+ funnel *StorableFunnel
+ claims *authtypes.Claims
+ expected GettableFunnel
+ }{
+ {
+ name: "with user email from funnel",
+ funnel: &StorableFunnel{
+ Identifiable: types.Identifiable{
+ ID: funnelID,
+ },
+ TimeAuditable: types.TimeAuditable{
+ CreatedAt: now,
+ UpdatedAt: now,
+ },
+ UserAuditable: types.UserAuditable{
+ CreatedBy: userID.String(),
+ UpdatedBy: userID.String(),
+ },
+ Name: "test-funnel",
+ OrgID: orgID,
+ CreatedByUser: &types.User{
+ Identifiable: types.Identifiable{
+ ID: userID,
+ },
+ Email: "funnel@example.com",
+ },
+ Steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ },
+ },
+ claims: &authtypes.Claims{
+ UserID: userID.String(),
+ OrgID: orgID.String(),
+ Email: "claims@example.com",
+ },
+ expected: GettableFunnel{
+ FunnelName: "test-funnel",
+ FunnelID: funnelID.String(),
+ Steps: []*FunnelStep{
+ {
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ },
+ CreatedAt: now.UnixNano() / 1000000,
+ CreatedBy: userID.String(),
+ UpdatedAt: now.UnixNano() / 1000000,
+ UpdatedBy: userID.String(),
+ OrgID: orgID.String(),
+ UserEmail: "funnel@example.com",
+ },
+ },
+ {
+ name: "with user email from claims",
+ funnel: &StorableFunnel{
+ Identifiable: types.Identifiable{
+ ID: funnelID,
+ },
+ TimeAuditable: types.TimeAuditable{
+ CreatedAt: now,
+ UpdatedAt: now,
+ },
+ UserAuditable: types.UserAuditable{
+ CreatedBy: userID.String(),
+ UpdatedBy: userID.String(),
+ },
+ Name: "test-funnel",
+ OrgID: orgID,
+ Steps: []*FunnelStep{
+ {
+ ID: valuer.GenerateUUID(),
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ },
+ },
+ claims: &authtypes.Claims{
+ UserID: userID.String(),
+ OrgID: orgID.String(),
+ Email: "claims@example.com",
+ },
+ expected: GettableFunnel{
+ FunnelName: "test-funnel",
+ FunnelID: funnelID.String(),
+ Steps: []*FunnelStep{
+ {
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ },
+ CreatedAt: now.UnixNano() / 1000000,
+ CreatedBy: userID.String(),
+ UpdatedAt: now.UnixNano() / 1000000,
+ UpdatedBy: userID.String(),
+ OrgID: orgID.String(),
+ UserEmail: "claims@example.com",
+ },
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result := ConstructFunnelResponse(tt.funnel, tt.claims)
+
+ // Compare top-level fields
+ assert.Equal(t, tt.expected.FunnelName, result.FunnelName)
+ assert.Equal(t, tt.expected.FunnelID, result.FunnelID)
+ assert.Equal(t, tt.expected.CreatedAt, result.CreatedAt)
+ assert.Equal(t, tt.expected.CreatedBy, result.CreatedBy)
+ assert.Equal(t, tt.expected.UpdatedAt, result.UpdatedAt)
+ assert.Equal(t, tt.expected.UpdatedBy, result.UpdatedBy)
+ assert.Equal(t, tt.expected.OrgID, result.OrgID)
+ assert.Equal(t, tt.expected.UserEmail, result.UserEmail)
+
+ // Compare steps
+ assert.Len(t, result.Steps, len(tt.expected.Steps))
+ for i, step := range result.Steps {
+ expectedStep := tt.expected.Steps[i]
+ assert.Equal(t, expectedStep.Name, step.Name)
+ assert.Equal(t, expectedStep.ServiceName, step.ServiceName)
+ assert.Equal(t, expectedStep.SpanName, step.SpanName)
+ assert.Equal(t, expectedStep.Order, step.Order)
+ }
+ })
+ }
+}
+
+func TestProcessFunnelSteps(t *testing.T) {
+ tests := []struct {
+ name string
+ steps []*FunnelStep
+ expectError bool
+ }{
+ {
+ name: "valid steps with missing IDs",
+ steps: []*FunnelStep{
+ {
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: 0, // Will be normalized to 1
+ },
+ {
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 0, // Will be normalized to 2
+ },
+ },
+ expectError: false,
+ },
+ {
+ name: "invalid steps - missing service name",
+ steps: []*FunnelStep{
+ {
+ Name: "Step 1",
+ SpanName: "test-span",
+ Order: 1,
+ },
+ {
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ expectError: true,
+ },
+ {
+ name: "invalid steps - negative order",
+ steps: []*FunnelStep{
+ {
+ Name: "Step 1",
+ ServiceName: "test-service",
+ SpanName: "test-span",
+ Order: -1,
+ },
+ {
+ Name: "Step 2",
+ ServiceName: "test-service",
+ SpanName: "test-span-2",
+ Order: 2,
+ },
+ },
+ expectError: true,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ result, err := ProcessFunnelSteps(tt.steps)
+ if tt.expectError {
+ assert.Error(t, err)
+ assert.Nil(t, result)
+ } else {
+ assert.NoError(t, err)
+ assert.NotNil(t, result)
+ assert.Len(t, result, len(tt.steps))
+
+ // Verify IDs are generated
+ for _, step := range result {
+ assert.False(t, step.ID.IsZero())
+ }
+
+ // Verify orders are normalized
+ for i, step := range result {
+ assert.Equal(t, int64(i+1), step.Order)
+ }
+ }
+ })
+ }
+}
diff --git a/pkg/valuer/string.go b/pkg/valuer/string.go
index 18259ed0c9..ce2b5f7ea4 100644
--- a/pkg/valuer/string.go
+++ b/pkg/valuer/string.go
@@ -67,3 +67,8 @@ func (enum *String) Scan(val interface{}) error {
*enum = NewString(str)
return nil
}
+
+func (enum *String) UnmarshalText(text []byte) error {
+ *enum = NewString(string(text))
+ return nil
+}
diff --git a/pkg/valuer/uuid.go b/pkg/valuer/uuid.go
index 35b49cda8a..a12979e0ce 100644
--- a/pkg/valuer/uuid.go
+++ b/pkg/valuer/uuid.go
@@ -122,3 +122,13 @@ func (enum *UUID) Scan(val interface{}) error {
*enum = enumVal
return nil
}
+
+func (enum *UUID) UnmarshalText(text []byte) error {
+ uuid, err := NewUUID(string(text))
+ if err != nil {
+ return err
+ }
+
+ *enum = uuid
+ return nil
+}
diff --git a/pkg/valuer/valuer.go b/pkg/valuer/valuer.go
index f069da04d8..7e65ac2857 100644
--- a/pkg/valuer/valuer.go
+++ b/pkg/valuer/valuer.go
@@ -3,6 +3,7 @@ package valuer
import (
"database/sql"
"database/sql/driver"
+ "encoding"
"encoding/json"
"fmt"
)
@@ -28,4 +29,7 @@ type Valuer interface {
// Implement fmt.Stringer to allow the value to be printed as a string
fmt.Stringer
+
+ // Implement encoding.TextUnmarshaler to allow the value to be unmarshalled from a string
+ encoding.TextUnmarshaler
}