diff --git a/public/app/core/components/DocsLinkButton.tsx b/public/app/core/components/DocsLinkButton.tsx new file mode 100644 index 00000000000..fb476deea10 --- /dev/null +++ b/public/app/core/components/DocsLinkButton.tsx @@ -0,0 +1,26 @@ +import React from 'react'; + +import { LinkButton } from '@grafana/ui'; + +type Props = { + hrefSuffix: string; +}; + +export function DocsLinkButton(props: Props) { + const { hrefSuffix } = props; + const tooltip = 'Learn more in the Grafana docs'; + + return ( + + ); +} diff --git a/public/app/core/components/NodeGraphSettings.tsx b/public/app/core/components/NodeGraphSettings.tsx index 1cf1dd9b7f3..459beda1aeb 100644 --- a/public/app/core/components/NodeGraphSettings.tsx +++ b/public/app/core/components/NodeGraphSettings.tsx @@ -4,9 +4,12 @@ import React from 'react'; import { DataSourceJsonData, DataSourcePluginOptionsEditorProps, + GrafanaTheme2, updateDatasourcePluginJsonDataOption, } from '@grafana/data'; -import { InlineField, InlineFieldRow, InlineSwitch } from '@grafana/ui'; +import { InlineField, InlineFieldRow, InlineSwitch, useStyles2 } from '@grafana/ui'; + +import { DocsLinkButton } from './DocsLinkButton'; export interface NodeGraphOptions { enabled?: boolean; @@ -19,9 +22,17 @@ export interface NodeGraphData extends DataSourceJsonData { interface Props extends DataSourcePluginOptionsEditorProps {} export function NodeGraphSettings({ options, onOptionsChange }: Props) { + const styles = useStyles2(getStyles); + return (

Node graph

+ +
+ {`Show or hide the node graph visualization`} + +
+ ({ + infoText: css` + label: infoText; + padding-bottom: ${theme.spacing(2)}; + color: ${theme.colors.text.secondary}; + `, container: css` label: container; width: 100%; @@ -53,4 +69,4 @@ const styles = { label: row; align-items: baseline; `, -}; +}); diff --git a/public/app/core/components/TraceToLogs/TraceToLogsSettings.tsx b/public/app/core/components/TraceToLogs/TraceToLogsSettings.tsx index 669fc237033..d572983fdb9 100644 --- a/public/app/core/components/TraceToLogs/TraceToLogsSettings.tsx +++ b/public/app/core/components/TraceToLogs/TraceToLogsSettings.tsx @@ -10,6 +10,8 @@ import { import { DataSourcePicker } from '@grafana/runtime'; import { InlineField, InlineFieldRow, Input, useStyles2, InlineSwitch } from '@grafana/ui'; +import { DocsLinkButton } from '../DocsLinkButton'; + import { TagMappingInput } from './TagMappingInput'; // @deprecated use getTraceToLogsOptions to get the v2 version of this config from jsonData @@ -107,7 +109,10 @@ export function TraceToLogsSettings({ options, onOptionsChange }: Props) {

Trace to logs

-
Navigate from a trace span to the selected data source's logs.
+
+ Navigate from a trace span to the selected data source's logs + +

Trace to metrics

-
Navigate from a trace span to the selected data source's metrics.
+
+ Navigate from a trace span to the selected data source's metrics + +
Span bar
- Add additional info next to the service and operation on a span bar row in the trace view. + Add additional info next to the service and operation on a span bar row in the trace view +
@@ -88,7 +90,6 @@ const getStyles = (theme: GrafanaTheme2) => ({ padding-bottom: ${theme.spacing(2)}; color: ${theme.colors.text.secondary}; `, - row: css` label: row; align-items: baseline; diff --git a/public/app/plugins/datasource/tempo/configuration/LokiSearchSettings.tsx b/public/app/plugins/datasource/tempo/configuration/LokiSearchSettings.tsx index eb2cbb51e8a..e43ba60e472 100644 --- a/public/app/plugins/datasource/tempo/configuration/LokiSearchSettings.tsx +++ b/public/app/plugins/datasource/tempo/configuration/LokiSearchSettings.tsx @@ -1,12 +1,14 @@ -import { css } from '@emotion/css'; import React from 'react'; -import { DataSourcePluginOptionsEditorProps, GrafanaTheme2, updateDatasourcePluginJsonDataOption } from '@grafana/data'; +import { DataSourcePluginOptionsEditorProps, updateDatasourcePluginJsonDataOption } from '@grafana/data'; import { DataSourcePicker } from '@grafana/runtime'; import { Button, InlineField, InlineFieldRow, useStyles2 } from '@grafana/ui'; +import { DocsLinkButton } from 'app/core/components/DocsLinkButton'; import { TempoJsonData } from '../types'; +import { getStyles } from './QuerySettings'; + interface Props extends DataSourcePluginOptionsEditorProps {} export function LokiSearchSettings({ options, onOptionsChange }: Props) { @@ -23,11 +25,12 @@ export function LokiSearchSettings({ options, onOptionsChange }: Props) { } return ( -
+

Loki search

- Select a Loki data source to search for traces. Derived fields must be configured in the Loki data source. + Select a Loki data source to search for traces. Derived fields must be configured in the Loki data source +
@@ -64,15 +67,3 @@ export function LokiSearchSettings({ options, onOptionsChange }: Props) {
); } - -const getStyles = (theme: GrafanaTheme2) => ({ - infoText: css` - label: infoText; - padding-bottom: ${theme.spacing(2)}; - color: ${theme.colors.text.secondary}; - `, - row: css` - label: row; - align-items: baseline; - `, -}); diff --git a/public/app/plugins/datasource/tempo/configuration/QuerySettings.tsx b/public/app/plugins/datasource/tempo/configuration/QuerySettings.tsx index f8f0f154b8b..d901982dce9 100644 --- a/public/app/plugins/datasource/tempo/configuration/QuerySettings.tsx +++ b/public/app/plugins/datasource/tempo/configuration/QuerySettings.tsx @@ -3,6 +3,7 @@ import React from 'react'; import { DataSourcePluginOptionsEditorProps, GrafanaTheme2, updateDatasourcePluginJsonDataOption } from '@grafana/data'; import { InlineField, InlineFieldRow, InlineSwitch, Input, useStyles2 } from '@grafana/ui'; +import { DocsLinkButton } from 'app/core/components/DocsLinkButton'; import { TempoJsonData } from '../types'; @@ -16,7 +17,8 @@ export function QuerySettings({ options, onOptionsChange }: Props) {

TraceID query

- Modify how TraceID queries are run. These settings do not apply to TraceQL queries. + Modify how TraceID queries are run +
({ +export const getStyles = (theme: GrafanaTheme2) => ({ infoText: css` - label: infoText; padding-bottom: ${theme.spacing(2)}; color: ${theme.colors.text.secondary}; `, container: css` - label: container; width: 100%; `, row: css` - label: row; align-items: baseline; `, }); diff --git a/public/app/plugins/datasource/tempo/configuration/SearchSettings.tsx b/public/app/plugins/datasource/tempo/configuration/SearchSettings.tsx index 0e0ef4bd4f2..f674a718862 100644 --- a/public/app/plugins/datasource/tempo/configuration/SearchSettings.tsx +++ b/public/app/plugins/datasource/tempo/configuration/SearchSettings.tsx @@ -1,17 +1,27 @@ -import { css } from '@emotion/css'; import React from 'react'; import { DataSourcePluginOptionsEditorProps, updateDatasourcePluginJsonDataOption } from '@grafana/data'; -import { InlineField, InlineFieldRow, InlineSwitch } from '@grafana/ui'; +import { InlineField, InlineFieldRow, InlineSwitch, useStyles2 } from '@grafana/ui'; +import { DocsLinkButton } from 'app/core/components/DocsLinkButton'; import { TempoJsonData } from '../types'; +import { getStyles } from './QuerySettings'; + interface Props extends DataSourcePluginOptionsEditorProps {} export function SearchSettings({ options, onOptionsChange }: Props) { + const styles = useStyles2(getStyles); + return (

Tempo search

+ +
+ Modify how traces are searched + +
+ ); } - -const styles = { - container: css` - label: container; - width: 100%; - `, - row: css` - label: row; - align-items: baseline; - `, -}; diff --git a/public/app/plugins/datasource/tempo/configuration/ServiceGraphSettings.tsx b/public/app/plugins/datasource/tempo/configuration/ServiceGraphSettings.tsx index 28dad5caaec..e947f0fd044 100644 --- a/public/app/plugins/datasource/tempo/configuration/ServiceGraphSettings.tsx +++ b/public/app/plugins/datasource/tempo/configuration/ServiceGraphSettings.tsx @@ -1,22 +1,27 @@ -import { css } from '@emotion/css'; import React from 'react'; -import { DataSourcePluginOptionsEditorProps, GrafanaTheme2, updateDatasourcePluginJsonDataOption } from '@grafana/data'; +import { DataSourcePluginOptionsEditorProps, updateDatasourcePluginJsonDataOption } from '@grafana/data'; import { DataSourcePicker } from '@grafana/runtime'; import { Button, InlineField, InlineFieldRow, useStyles2 } from '@grafana/ui'; +import { DocsLinkButton } from 'app/core/components/DocsLinkButton'; import { TempoJsonData } from '../types'; +import { getStyles } from './QuerySettings'; + interface Props extends DataSourcePluginOptionsEditorProps {} export function ServiceGraphSettings({ options, onOptionsChange }: Props) { const styles = useStyles2(getStyles); return ( -
+

Service graph

-
Select a Prometheus data source that contains the service graph data.
+
+ Select a Prometheus data source that contains the service graph data + +
); } - -const getStyles = (theme: GrafanaTheme2) => ({ - infoText: css` - label: infoText; - padding-bottom: ${theme.spacing(2)}; - color: ${theme.colors.text.secondary}; - `, - row: css` - label: row; - align-items: baseline; - `, -}); diff --git a/public/app/plugins/datasource/tempo/configuration/TraceQLSearchSettings.tsx b/public/app/plugins/datasource/tempo/configuration/TraceQLSearchSettings.tsx index 0a2ab3cea5f..e85311bd147 100644 --- a/public/app/plugins/datasource/tempo/configuration/TraceQLSearchSettings.tsx +++ b/public/app/plugins/datasource/tempo/configuration/TraceQLSearchSettings.tsx @@ -1,19 +1,21 @@ -import { css } from '@emotion/css'; import React from 'react'; import useAsync from 'react-use/lib/useAsync'; import { DataSourcePluginOptionsEditorProps, updateDatasourcePluginJsonDataOption } from '@grafana/data'; import { getDataSourceSrv } from '@grafana/runtime'; -import { InlineField, InlineFieldRow, InlineSwitch } from '@grafana/ui'; +import { InlineField, InlineFieldRow, InlineSwitch, useStyles2 } from '@grafana/ui'; +import { DocsLinkButton } from 'app/core/components/DocsLinkButton'; import { TempoDatasource } from '../datasource'; import { TempoJsonData } from '../types'; +import { getStyles } from './QuerySettings'; import { TraceQLSearchTags } from './TraceQLSearchTags'; interface Props extends DataSourcePluginOptionsEditorProps {} export function TraceQLSearchSettings({ options, onOptionsChange }: Props) { + const styles = useStyles2(getStyles); const dataSourceSrv = getDataSourceSrv(); const fetchDatasource = async () => { return (await dataSourceSrv.get({ type: options.type, uid: options.uid })) as TempoDatasource; @@ -24,6 +26,12 @@ export function TraceQLSearchSettings({ options, onOptionsChange }: Props) { return (

Tempo search

+ +
+ Modify how traces are searched + +
+ ); } - -const styles = { - container: css` - label: container; - width: 100%; - `, - row: css` - label: row; - align-items: baseline; - `, -};