Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
30b07fb
Fix insight types, connect new insight cards
kshmidt-digma Feb 29, 2024
8d8119b
Merge pull request #561 from digma-ai/fix/integration
kshmidt-digma Feb 29, 2024
7304e6f
Nplus one (#563)
opoliarush Feb 29, 2024
db8a639
Bottlneck
opoliarush Feb 29, 2024
a7ef48b
bottleneck
opoliarush Feb 29, 2024
e93e8dd
fix comments
opoliarush Feb 29, 2024
5670212
fix comments
opoliarush Feb 29, 2024
4c748d0
Merge pull request #564 from digma-ai/bottelneck-insight
kshmidt-digma Feb 29, 2024
a5d45f4
Add request breakdown insight
kshmidt-digma Feb 29, 2024
b37f821
Merge pull request #565 from digma-ai/feature/request-breakdown-insight
kshmidt-digma Feb 29, 2024
1d566ff
Endpoint slow down source
opoliarush Feb 29, 2024
d10d843
Merge pull request #566 from digma-ai/duration-slowdown
kshmidt-digma Feb 29, 2024
e71c732
Add Warning icon for critical insights
kshmidt-digma Feb 29, 2024
1ffa1f5
Session view (#568)
opoliarush Feb 29, 2024
c4589fc
Update insight cards (#567)
kshmidt-digma Feb 29, 2024
4eb6362
Scaling issue (#569)
opoliarush Mar 1, 2024
6a25f23
Add Top Usage Insight (#571)
kshmidt-digma Mar 1, 2024
0d5deef
Query optimization (#572)
opoliarush Mar 1, 2024
08e3937
Add Duration Breakdown insight
kshmidt-digma Mar 1, 2024
71c9ea5
Merge pull request #573 from digma-ai/feature/duration-breakdown
kshmidt-digma Mar 1, 2024
e8550c7
Update styles
kshmidt-digma Mar 1, 2024
04a90f2
custom primary button
opoliarush Mar 1, 2024
68ae967
Revert "custom primary button"
opoliarush Mar 1, 2024
eb5ee90
custom primary button (#576)
opoliarush Mar 1, 2024
1d57494
Fix styles (#574)
kshmidt-digma Mar 1, 2024
d52bc59
Insight update (#577)
opoliarush Mar 1, 2024
a9b40fa
Update Endpoint Query Optimization insight card
kshmidt-digma Mar 1, 2024
3512ea6
Merge pull request #580 from digma-ai/fix/query-optimization-insight
kshmidt-digma Mar 1, 2024
566cf2a
Remove duplicated tooltips
kshmidt-digma Mar 1, 2024
c9b312c
Use state (#582)
opoliarush Mar 1, 2024
e4f0f1a
Fix Recalculate button
kshmidt-digma Mar 1, 2024
a8fc0b1
Change insight buttons order, switch to criticality for icon coloring
kshmidt-digma Mar 1, 2024
f49267a
Update toolbar icon order
kshmidt-digma Mar 1, 2024
a281e8c
Add tooltip for insight icon
kshmidt-digma Mar 1, 2024
674f93a
Change contract for Recalculate action, small style fixes (#595)
kshmidt-digma Mar 4, 2024
9fc42f1
Update button label
kshmidt-digma Mar 4, 2024
57c8e86
Fix env empty state (#597)
opoliarush Mar 4, 2024
bdf35e5
Fix Bottleneck insights (#598)
kshmidt-digma Mar 4, 2024
d42dcf4
Fix typo
kshmidt-digma Mar 4, 2024
8e21679
Use criticality for insight icon coloring (#599)
kshmidt-digma Mar 4, 2024
5a9dd2a
Add span link to Insight card
kshmidt-digma Mar 4, 2024
9f6f6a1
Fix insight card
kshmidt-digma Mar 4, 2024
d96dbc4
Fix insight card header
kshmidt-digma Mar 4, 2024
bb3d16a
Fix UI bugs (#601)
opoliarush Mar 4, 2024
a3720b0
Merge pull request #600 from digma-ai/fix/insight-span-info
opoliarush Mar 4, 2024
383add7
Add description to empty Duration insight (#602)
kshmidt-digma Mar 4, 2024
620f345
Update styles
kshmidt-digma Mar 4, 2024
eda6cf0
Update wording
kshmidt-digma Mar 4, 2024
31a5cfb
Handle nullable endpoint list (#603)
kshmidt-digma Mar 4, 2024
6f5b3ed
Update styles
kshmidt-digma Mar 4, 2024
45e3519
Fix ticket open (#606)
opoliarush Mar 4, 2024
e823aa8
Update src/components/Assets/AssetList/AssetEntry/AssetEntry.stories.tsx
opoliarush Mar 5, 2024
573c173
#615: change documentation
opoliarush Mar 5, 2024
e41241b
revert
opoliarush Mar 5, 2024
14e75ed
#612 add refresh button
opoliarush Mar 5, 2024
e463c85
#605: no assets state
opoliarush Mar 5, 2024
2655ce9
changed refresh button
opoliarush Mar 5, 2024
392523e
Update src/components/Insights/InsightsPage/index.tsx
opoliarush Mar 5, 2024
eed3f7a
Merge branch 'main' into feature/fix-new-ui
opoliarush Mar 5, 2024
8f3b37b
Merge branch 'feature/fix-new-ui' of https://github.com/digma-ai/digm…
opoliarush Mar 5, 2024
7d01d58
Change spaces
opoliarush Mar 5, 2024
f28fc1c
Update src/components/Documentation/pages/RunDigma/runDigmaWithComman…
kshmidt-digma Mar 5, 2024
7ab0411
Update src/components/Documentation/pages/RunDigma/runDigmaWithComman…
kshmidt-digma Mar 5, 2024
a9f0712
Update src/components/Documentation/pages/RunDigma/runDigmaWithComman…
kshmidt-digma Mar 5, 2024
c5bf1f9
Apply suggestions from code review
kshmidt-digma Mar 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/components/Assets/AssetTypeList/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,10 @@ export const AssetTypeList = (props: AssetTypeListProps) => {
return <NoDataMessage type={"noSearchResults"} />;
}

if (config.scope !== null) {
return <NoDataMessage type={"noDataForAsset"} />;
}

return <NoDataMessage type={"noDataYet"} />;
}

Expand Down
6 changes: 6 additions & 0 deletions src/components/Assets/NoDataMessage/NoDataMessage.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,9 @@ export const NoSearchResults: Story = {
type: "noSearchResults"
}
};

export const NoDataForAssetResults: Story = {
args: {
type: "noDataForAsset"
}
};
16 changes: 16 additions & 0 deletions src/components/Assets/NoDataMessage/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,22 @@ export const NoDataMessage = (props: NoDataMessageProps) => {
/>
);
break;
case "noDataForAsset":
content = (
<EmptyState
icon={CardsIcon}
title={"No Assets"}
content={
<>
<s.EmptyStateDescription>
No child assets found for the current scope. Add more
observability to track internal functions not currently tracked.
</s.EmptyStateDescription>
</>
}
/>
);
break;
case "noSearchResults":
content = (
<EmptyState
Expand Down
2 changes: 1 addition & 1 deletion src/components/Assets/NoDataMessage/types.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export interface NoDataMessageProps {
type: "loading" | "noDataYet" | "noSearchResults";
type: "loading" | "noDataYet" | "noSearchResults" | "noDataForAsset";
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ export const runDigmaWithCommandLine: PageContent = {
<otel.exporter.otlp.traces.endpoint>http://localhost:5050</otel.exporter.otlp.traces.endpoint>
<otel.traces.exporter>otlp</otel.traces.exporter>
<otel.metrics.exporter>none</otel.metrics.exporter>
<otel.logs.exporter>none</otel.metrics.exporter>
<otel.service.name>\${pom.artifactId}</otel.service.name>
<otel.exporter.otlp.protocol>grpc</<otel.exporter.otlp.protocol>>
<otel.javaagent.extensions>\${env.TMPDIR}/temp-digma-otel-jars/digma-otel-agent-extension.jar</otel.javaagent.extensions>
</systemPropertyVariables>
</configuration>
Expand Down Expand Up @@ -65,6 +67,8 @@ export const runDigmaWithCommandLine: PageContent = {
systemProperty 'otel.exporter.otlp.traces.endpoint', 'http://localhost:5050'
systemProperty 'otel.traces.exporter', 'otlp'
systemProperty 'otel.metrics.exporter', 'none'
systemProperty 'otel.logs.exporter', 'none'
systemProperty 'otel.exporter.otlp.protocol', 'grpc'
systemProperty 'otel.service.name', "\${project.name}"
systemProperty 'otel.javaagent.extensions', "\${tempDir}/temp-digma-otel-jars/digma-otel-agent-extension.jar"
}
Expand All @@ -83,6 +87,8 @@ export const runDigmaWithCommandLine: PageContent = {
systemProperty("otel.exporter.otlp.traces.endpoint", "http://localhost:5050")
systemProperty("otel.traces.exporter", "otlp")
systemProperty("otel.metrics.exporter", "none")
systemProperty("otel.logs.exporter", "none")
systemProperty("otel.exporter.otlp.protocol", "grpc")
systemProperty("otel.service.name", project.name)
systemProperty("otel.javaagent.extensions", "\${tempDir}/temp-digma-otel-jars/digma-otel-agent-extension.jar")
}
Expand All @@ -102,15 +108,16 @@ export const runDigmaWithCommandLine: PageContent = {
application name:
</span>
<CodeSnippet
text={`curl --create-dirs -O -L --output-dir ./otel https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v1.29.0/opentelemetry-javaagent.jar
text={`curl --create-dirs -O -L --output-dir ./otel https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.1.0/opentelemetry-javaagent.jar

curl --create-dirs -O -L --output-dir ./otel https://github.com/digma-ai/otel-java-instrumentation/releases/latest/download/digma-otel-agent-extension.jar

export JAVA_TOOL_OPTIONS="-javaagent:/otel/javaagent.jar -Dotel.exporter.otlp.endpoint=http://localhost:5050 -Dotel.javaagent.extensions=/otel/digma-otel-agent-extension.jar"
export JAVA_TOOL_OPTIONS="-javaagent:/otel/javaagent.jar -Dotel.exporter.otlp.endpoint=http://localhost:5050 -Dotel.javaagent.extensions=/otel/digma-otel-agent-extension.jar -Dotel.metrics.exporter=none -Dotel.logs.exporter=none -Dotel.exporter.otlp.protocol=grpc"

export OTEL_SERVICE_NAME={--ENTER YOUR SERVICE NAME HERE--}
export OTEL_RESOURCE_ATTRIBUTES=digma.environment=LOCAL

java app.jar`}
java app.jarr`}
language={"bash"}
/>
</>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export const runDigmaWithDocker: PageContent = {
),
content: (
<CodeSnippet
text={`curl --create-dirs -O -L --output-dir ./otel https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v1.29.0/opentelemetry-javaagent.jar
text={`curl --create-dirs -O -L --output-dir ./otel https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.1.0/opentelemetry-javaagent.jar

curl --create-dirs -O -L --output-dir ./otel https://github.com/digma-ai/otel-java-instrumentation/releases/latest/download/digma-otel-agent-extension.jar`}
language={"bash"}
Expand Down Expand Up @@ -56,7 +56,7 @@ curl --create-dirs -O -L --output-dir ./otel https://github.com/digma-ai/otel-ja
- "./otel/opentelemetry-javaagent.jar:/otel/opentelemetry-javaagent.jar"
- "./otel/digma-otel-agent-extension.jar:/otel/digma-otel-agent-extension.jar"
environment:
- JAVA_TOOL_OPTIONS=-javaagent:/otel/opentelemetry-javaagent.jar -Dotel.exporter.otlp.endpoint=http://host.docker.internal:5050 -Dotel.javaagent.extensions=/otel/digma-otel-agent-extension.jar
- JAVA_TOOL_OPTIONS=-javaagent:/otel/opentelemetry-javaagent.jar -Dotel.exporter.otlp.endpoint=http://host.docker.internal:5050 -Dotel.javaagent.extensions=/otel/digma-otel-agent-extension.jar -Dotel.metrics.exporter=none -Dotel.logs.exporter=none -Dotel.exporter.otlp.protocol=grpc
- OTEL_SERVICE_NAME=#[your-service]
- OTEL_RESOURCE_ATTRIBUTES=digma.environment=DOCKER_LOCAL
- OTEL_METRICS_EXPORTER=none
Expand Down
35 changes: 23 additions & 12 deletions src/components/Insights/InsightsCatalog/index.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useContext, useEffect, useState } from "react";
import { useCallback, useContext, useEffect, useState } from "react";
import { usePrevious } from "../../../hooks/usePrevious";

import { useDebounce } from "../../../hooks/useDebounce";
Expand All @@ -8,6 +8,8 @@ import { Pagination } from "../../common/Pagination";
import { SearchInput } from "../../common/SearchInput";
import { SortingSelector } from "../../common/SortingSelector";
import { SORTING_ORDER, Sorting } from "../../common/SortingSelector/types";
import { RefreshIcon } from "../../common/icons/16px/RefreshIcon";
import { Tooltip } from "../../common/v3/Tooltip";
import { InsightsPage } from "../InsightsPage";
import * as s from "./styles";
import { InsightsCatalogProps, SORTING_CRITERION } from "./types";
Expand All @@ -32,6 +34,15 @@ export const InsightsCatalog = (props: InsightsCatalogProps) => {
const config = useContext(ConfigContext);
const previousConfig = usePrevious(config);
const previousScope = usePrevious(config.scope?.span);
const refreshData = useCallback(
() =>
props.onQueryChange({
page,
sorting,
searchQuery: debouncedSearchInputValue
}),
[page, sorting, debouncedSearchInputValue, props]
);

useEffect(() => {
if (!previousScope || previousScope !== config.scope?.span) {
Expand All @@ -51,11 +62,7 @@ export const InsightsCatalog = (props: InsightsCatalogProps) => {
}, [previousConfig, config]);

useEffect(() => {
props.onQueryChange({
page,
sorting,
searchQuery: debouncedSearchInputValue
});
refreshData();
}, []);

useEffect(() => {
Expand All @@ -64,11 +71,7 @@ export const InsightsCatalog = (props: InsightsCatalogProps) => {
(previousSorting && previousSorting !== sorting) ||
previousSearchQuery !== debouncedSearchInputValue
) {
props.onQueryChange({
page,
sorting,
searchQuery: debouncedSearchInputValue
});
refreshData();
}
}, [
previousSorting,
Expand All @@ -77,7 +80,8 @@ export const InsightsCatalog = (props: InsightsCatalogProps) => {
page,
debouncedSearchInputValue,
previousSearchQuery,
props.onQueryChange
props.onQueryChange,
refreshData
]);

return (
Expand Down Expand Up @@ -108,6 +112,13 @@ export const InsightsCatalog = (props: InsightsCatalogProps) => {
]}
default={defaultQuery.sorting}
/>
<Tooltip title="Refresh">
<s.RefreshButton
buttonType="tertiary"
icon={RefreshIcon}
onClick={() => refreshData()}
/>
</Tooltip>
</s.Toolbar>
<InsightsPage
page={page}
Expand Down
11 changes: 11 additions & 0 deletions src/components/Insights/InsightsCatalog/styles.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import styled from "styled-components";
import { Button } from "../../common/v3/Button";

export const Footer = styled.div`
display: flex;
Expand Down Expand Up @@ -38,3 +39,13 @@ export const Toolbar = styled.div`
padding: 8px;
gap: 8px;
`;

export const RefreshButton = styled(Button)`
border: 1px solid ${({ theme }) => theme.colors.v3.stroke.dark};
color: ${({ theme }) => theme.colors.v3.icon.tertiary};

&:hover:enabled {
color: ${({ theme }) => theme.colors.v3.icon.white};
background: none;
}
`;
23 changes: 23 additions & 0 deletions src/components/common/icons/16px/RefreshIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import React from "react";
import { useIconProps } from "../hooks";
import { IconProps } from "../types";

const RefreshIconComponent = (props: IconProps) => {
const { size, color } = useIconProps(props);
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width={size}
height={size}
viewBox="0 0 16 16"
fill="none"
>
<g stroke={color} strokeLinecap="round" strokeLinejoin="round">
<path d="M3.556 3.557S5.222 1.891 8 1.891c3.889 0 6.111 3.889 6.111 3.889m-1.667 6.665S10.778 14.11 8 14.11c-3.889 0-6.111-3.888-6.111-3.888" />
<path d="M10.778 5.779h3.333V2.445m-8.889 7.778H1.89v3.333" />
</g>
</svg>
);
};

export const RefreshIcon = React.memo(RefreshIconComponent);