Skip to content

Commit 0a19fee

Browse files
authored
Merge branch 'main' into speedup-trace-statistics-calculation
2 parents 15b77b1 + 808c5c3 commit 0a19fee

File tree

32 files changed

+1523
-1586
lines changed

32 files changed

+1523
-1586
lines changed

.github/workflows/lint-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717

1818
steps:
1919
- uses: actions/checkout@v4
20-
- uses: actions/setup-node@v3
20+
- uses: actions/setup-node@v4
2121
with:
2222
cache: yarn
2323
node-version: '18'

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717

1818
steps:
1919
- uses: actions/checkout@v4
20-
- uses: actions/setup-node@v3
20+
- uses: actions/setup-node@v4
2121
with:
2222
cache: yarn
2323
node-version: '18'

.github/workflows/unit-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717

1818
steps:
1919
- uses: actions/checkout@v4
20-
- uses: actions/setup-node@v3
20+
- uses: actions/setup-node@v4
2121
with:
2222
cache: yarn
2323
node-version: '18'

CHANGELOG.md

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,35 @@
11
# Releases
22

3-
## Next (unreleased)
3+
<details>
4+
<summary>next release template</summary>
45

5-
### Enhancements
6+
## v1.xx.0 (202x-xx-xx)
67

7-
### Fixes
8+
Run `make changelog` to generate content.
9+
10+
</details>
11+
12+
## v1.35.0 (2023-11-02)
13+
14+
#### ✨ New Features:
15+
16+
* Add tooltip when hovering critical path ([@GLVSKiriti](https://github.com/GLVSKiriti) in [#1871](https://github.com/jaegertracing/jaeger-ui/pull/1871))
17+
* Added tooltip when hovered on header column of tracestatistics view ([@GLVSKiriti](https://github.com/GLVSKiriti) in [#1902](https://github.com/jaegertracing/jaeger-ui/pull/1902))
18+
19+
#### 🐞 Bug fixes, Minor Improvements:
20+
21+
* Upgrade ant-design to v5.x ([@anshgoyalevil](https://github.com/anshgoyalevil) in [#1907](https://github.com/jaegertracing/jaeger-ui/pull/1907))
22+
* [refactor]: enhancement to selftime calculation logic in tracestatistics view ([@GLVSKiriti](https://github.com/GLVSKiriti) in [#1901](https://github.com/jaegertracing/jaeger-ui/pull/1901))
23+
* Fix: disregard malformed references pointing to the same span ([@zimv](https://github.com/zimv) in [#823](https://github.com/jaegertracing/jaeger-ui/pull/823))
24+
* Fix: add style for ioarrowforward ([@NineKama](https://github.com/NineKama) in [#1869](https://github.com/jaegertracing/jaeger-ui/pull/1869))
25+
* Replace deprecated ant-design props from referencebutton and keyvaluestable ([@anshgoyalevil](https://github.com/anshgoyalevil) in [#1864](https://github.com/jaegertracing/jaeger-ui/pull/1864))
26+
* Remove deprecated usages from antd dropdown, tooltip, and tab components ([@anshgoyalevil](https://github.com/anshgoyalevil) in [#1859](https://github.com/jaegertracing/jaeger-ui/pull/1859))
27+
* Replace deprecated visible prop of ant-design v3 with open prop of ant-design v4 ([@anshgoyalevil](https://github.com/anshgoyalevil) in [#1855](https://github.com/jaegertracing/jaeger-ui/pull/1855))
28+
* Replace deprecated usage of ant-design tabs component from searchtracepage ([@anshgoyalevil](https://github.com/anshgoyalevil) in [#1857](https://github.com/jaegertracing/jaeger-ui/pull/1857))
29+
30+
#### 👷 CI Improvements:
31+
32+
* Ci: add the label-check workflow to verify changelog labels on each pr ([@anshgoyalevil](https://github.com/anshgoyalevil) in [#1897](https://github.com/jaegertracing/jaeger-ui/pull/1897))
833

934
## v1.34.0 (2023-10-04)
1035

package.json

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,24 @@
99
},
1010
"devDependencies": {
1111
"@babel/eslint-parser": "^7.19.1",
12-
"@typescript-eslint/eslint-plugin": "6.9.0",
13-
"@typescript-eslint/parser": "6.9.0",
14-
"eslint": "8.52.0",
12+
"@typescript-eslint/eslint-plugin": "6.11.0",
13+
"@typescript-eslint/parser": "6.11.0",
14+
"eslint": "8.53.0",
1515
"eslint-config-airbnb": "19.0.4",
1616
"eslint-config-prettier": "9.0.0",
1717
"eslint-plugin-import": "2.29.0",
18-
"eslint-plugin-jsx-a11y": "6.7.1",
18+
"eslint-plugin-jsx-a11y": "^6.8.0",
1919
"eslint-plugin-react": "7.33.2",
2020
"husky": "8.0.3",
2121
"jsdom": "22.1.0",
22-
"lerna": "7.4.1",
22+
"lerna": "7.4.2",
2323
"npm-run-all": "4.1.5",
24-
"prettier": "3.0.3",
24+
"prettier": "3.1.0",
2525
"rxjs-compat": "6.6.7",
2626
"typescript": "5.2.2"
2727
},
2828
"resolutions": {
29-
"**/lodash": "4.17.21",
30-
"**/@types/react": "16.14.35",
31-
"**/@types/react-dom": "16.9.18"
29+
"**/lodash": "^4.17.21"
3230
},
3331
"workspaces": {
3432
"packages": [

packages/jaeger-ui/README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Jaeger UI
2+
3+
## Configuration
4+
5+
The UI supports customization via a `Config` object (see [src/types/config.tsx](./src/types/config.tsx) for the complete schema). This object is returned by the top-level function `getJaegerUiConfig` defined in [index.html](./index.html). By default this function just returns null, but its source is manipulated by the `query-service` such that the values are injected dynamically via search-replace. The returned value is then merged with [defaults](./src/utils/config/get-config.js) into the redux `state.config`.
6+
7+
`query-service` allows specifying custom configuration as either JSON or Javascript file.
8+
9+
### Configuration as JSON
10+
11+
When the config file has `.json` extension, `query-service` looks for the statement `JAEGER_CONFIG = DEFAULT_CONFIG` and replaces the right-hand side with the content of the loaded config file, which must contain a valid JSON.
12+
13+
### Configuration as Javascript
14+
15+
When the config file has `.js` extension, `query-service` looks for the comment `// JAEGER_CONFIG_JS` and replaces it with a function `UIConfig()` whose body is the content of the loaded file, which must contain a valid Javascript code that returns a Config object. This allows more complex integrations by actually executing some custom code. For example, `tracking.customWebAnalytics` allows to hook up a different implementation of the tracking component.

packages/jaeger-ui/index.html

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,33 @@
1616
<title>Jaeger UI</title>
1717
<script>
1818
// Jaeger UI config data is embedded by the query-service via search-replace.
19-
// This is later merged with defaults into the redux `state.config` via
20-
// src/utils/config/get-config.js.
19+
// Please see ./README.md#configuration for details.
20+
21+
// TODO the JSON/JS bifurcation below could be avoided by using a single template function like:
22+
// function getJaegerUiConfig() { return null; }
23+
24+
// Important! Do not alter the following line; query-service looks for that exact pattern.
2125
// JAEGER_CONFIG_JS
22-
// the line above may be replaced by user-provided JS file that should define a UIConfig function.
26+
2327
function getJaegerUiConfig() {
2428
if(typeof window.UIConfig === 'function') {
2529
return UIConfig();
2630
}
2731
const DEFAULT_CONFIG = null;
32+
// Important! Do not alter the following line; query-service looks for that exact pattern.
2833
const JAEGER_CONFIG = DEFAULT_CONFIG;
2934
return JAEGER_CONFIG;
3035
}
36+
// Jaeger storage compabilities data is embedded by the query-service via search-replace.
37+
function getJaegerStorageCapabilities() {
38+
const DEFAULT_STORAGE_CAPABILITIES = { "archiveStorage": false };
39+
const JAEGER_STORAGE_CAPABILITIES = DEFAULT_STORAGE_CAPABILITIES;
40+
return JAEGER_STORAGE_CAPABILITIES;
41+
}
3142
// Jaeger version data is embedded by the query-service via search/replace.
3243
function getJaegerVersion() {
33-
const DEFAULT_VERSION = {"gitCommit":"", "gitVersion":"", "buildDate":""};
44+
const DEFAULT_VERSION = {'gitCommit':'', 'gitVersion':'', 'buildDate':''};
45+
// Important! Do not alter the following line; query-service looks for that exact pattern.
3446
const JAEGER_VERSION = DEFAULT_VERSION;
3547
return JAEGER_VERSION;
3648
}

packages/jaeger-ui/package.json

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
33
"name": "jaeger-ui",
4-
"version": "1.34.0",
4+
"version": "1.35.0",
55
"main": "src/index.tsx",
66
"license": "Apache-2.0",
77
"homepage": ".",
@@ -17,11 +17,11 @@
1717
"@babel/preset-typescript": "^7.21.0",
1818
"@testing-library/jest-dom": "^6.0.0",
1919
"@testing-library/react": "^14.0.0",
20-
"@types/react": "16.14.35",
20+
"@types/react": "^18.2.33",
2121
"@types/react-window": "^1.8.0",
2222
"@types/redux-form": "^8.3.5",
2323
"@types/rollup-plugin-visualizer": "^4.2.1",
24-
"@vitejs/plugin-legacy": "^4.0.1",
24+
"@vitejs/plugin-legacy": "^5.0.0",
2525
"@vitejs/plugin-react": "^4.0.0",
2626
"@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
2727
"babel-jest": "^29.5.0",
@@ -37,7 +37,7 @@
3737
"rollup-plugin-visualizer": "^5.9.0",
3838
"sinon": "^17.0.0",
3939
"terser": "^5.16.5",
40-
"vite": "^4.1.4",
40+
"vite": "^5.0.0",
4141
"vite-plugin-imp": "^2.3.1"
4242
},
4343
"dependencies": {
@@ -81,9 +81,10 @@
8181
"react-helmet": "^6.1.0",
8282
"react-icons": "^4.10.1",
8383
"react-is": "^18.2.0",
84-
"react-json-view-lite": "1.1.0",
84+
"react-json-view-lite": "1.2.0",
8585
"react-redux": "^8.1.2",
86-
"react-router-dom": "5.2.0",
86+
"react-router-dom": "5.3.4",
87+
"react-router-dom-v5-compat": "^6.18.0",
8788
"react-vis": "^1.7.2",
8889
"react-vis-force": "^0.3.1",
8990
"react-window": "^1.8.3",

packages/jaeger-ui/src/components/DeepDependencies/Header/ChevronDown.test.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
// limitations under the License.
1414

1515
import React from 'react';
16-
import { shallow } from 'enzyme';
17-
import { IoChevronDown } from 'react-icons/io5';
16+
import { render } from '@testing-library/react';
17+
import '@testing-library/jest-dom';
1818

1919
import ChevronDown from './ChevronDown';
2020

@@ -24,14 +24,14 @@ describe('ChevronDown', () => {
2424
const style = {
2525
border: 'black solid 1px',
2626
};
27-
const wrapper = shallow(<ChevronDown className={className} style={style} />);
27+
const { container } = render(<ChevronDown className={className} style={style} />);
2828

29-
expect(wrapper.hasClass(className)).toBe(true);
30-
expect(wrapper.find(IoChevronDown).prop('style')).toBe(style);
29+
expect(container.firstChild).toHaveClass(className);
30+
expect(container.firstChild).toHaveStyle(style);
3131
});
3232

3333
it('does not add `undefined` as a className when not given a className', () => {
34-
const wrapper = shallow(<ChevronDown />);
35-
expect(wrapper.hasClass('undefined')).toBe(false);
34+
const { container } = render(<ChevronDown />);
35+
expect(container.firstChild).not.toHaveClass('undefined');
3636
});
3737
});

packages/jaeger-ui/src/components/DependencyGraph/index.jsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,19 @@ export class DependencyGraphPageImpl extends Component {
8282
}
8383

8484
if (!nodes || !links) {
85-
return <div className="u-simple-card ub-m3">No service dependencies found.</div>;
85+
return (
86+
<div className="u-simple-card ub-m3">
87+
No service dependencies found.{' '}
88+
<a
89+
href="https://www.jaegertracing.io/docs/latest/faq/#why-is-the-dependencies-page-empty"
90+
rel="noopener noreferrer"
91+
target="_blank"
92+
>
93+
See FAQ
94+
</a>
95+
.
96+
</div>
97+
);
8698
}
8799

88100
const GRAPH_TYPE_OPTIONS = [GRAPH_TYPES.FORCE_DIRECTED];

0 commit comments

Comments
 (0)