Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
0653688
fix: remove deleted image
PeterYurkovich Apr 2, 2025
4f096f4
Merge pull request #83 from PeterYurkovich/remove-deleted-image
openshift-merge-bot[bot] Apr 2, 2025
5f3f209
Update owners file to add Ishwar from Tracing team
IshwarKanse Apr 10, 2025
f2e01f9
Merge pull request #84 from IshwarKanse/main
openshift-merge-bot[bot] Apr 10, 2025
dba4094
OU-749: migrate to react-router-dom-compat-v5
andreasgerstmayr Apr 16, 2025
b79f7bb
[chore] fix build-time warnings
andreasgerstmayr Apr 17, 2025
7869bce
Merge pull request #85 from andreasgerstmayr/migrate-to-react-router-…
openshift-merge-bot[bot] Apr 22, 2025
9107c7a
OU-687: Migrate to PatternFly 6
andreasgerstmayr Apr 24, 2025
118bc7e
replace all CSS variables with PF6 tokens
andreasgerstmayr Apr 28, 2025
7118ab6
Merge pull request #86 from andreasgerstmayr/fix-warnings
openshift-merge-bot[bot] Apr 29, 2025
ed22593
Merge remote-tracking branch 'upstream/main' into patternfly6
andreasgerstmayr Apr 29, 2025
bf1dd3c
Merge pull request #87 from andreasgerstmayr/patternfly6
openshift-merge-bot[bot] Apr 30, 2025
3f4775a
use selects from @patternfly/react-templates, add jest
andreasgerstmayr May 7, 2025
ae44028
fix imports
andreasgerstmayr May 7, 2025
1bdee58
Merge pull request #88 from andreasgerstmayr/use-patternfly-react-tem…
openshift-merge-bot[bot] May 8, 2025
88ddb32
OU-161: Add filter bar
andreasgerstmayr May 7, 2025
0ce34c8
use DurationString type from @perses-dev/core
andreasgerstmayr May 8, 2025
0fb54e6
Add Cypress tests for Tracing UI plugin
IshwarKanse May 9, 2025
b5dab29
Merge pull request #90 from IshwarKanse/main
openshift-merge-bot[bot] May 12, 2025
142fd4f
display 'no results found' if select box is empty
andreasgerstmayr May 12, 2025
fc77aa2
optimize TraceQL generation if only a single status is selected
andreasgerstmayr May 12, 2025
bb14d07
Update Cypress base image
IshwarKanse May 12, 2025
6b1137a
Merge pull request #91 from IshwarKanse/updtestdockerfile
openshift-merge-bot[bot] May 12, 2025
ffe4c24
OU-762: fix flicker on trace detail page
andreasgerstmayr May 13, 2025
751060f
Merge pull request #94 from andreasgerstmayr/fix-flicker2
openshift-merge-bot[bot] May 13, 2025
8c83f4d
Update tests to work on OCP 4.19
IshwarKanse May 13, 2025
bf18bbc
Merge pull request #89 from andreasgerstmayr/filterbar
openshift-merge-bot[bot] May 13, 2025
b4d0c08
Merge pull request #95 from IshwarKanse/oc419
openshift-merge-bot[bot] May 13, 2025
ee8bc0f
OU-753: Rebase to latest upstream Perses version
andreasgerstmayr May 13, 2025
dc4d734
Fix DT_CONSOLE_IMAGE var assertion
IshwarKanse May 14, 2025
6a9a20e
Merge pull request #97 from andreasgerstmayr/rebase
openshift-merge-bot[bot] May 14, 2025
b75d820
Merge pull request #99 from IshwarKanse/fixvar
openshift-merge-bot[bot] May 14, 2025
440e292
Fix the plugin resource yaml in tests
IshwarKanse May 14, 2025
b69f324
Merge pull request #101 from IshwarKanse/tuifix
openshift-merge-bot[bot] May 14, 2025
82ddc41
NO-JIRA: [bugfix] fix no data state
andreasgerstmayr May 14, 2025
d582aae
Merge pull request #103 from andreasgerstmayr/fix-no-data-state
openshift-merge-bot[bot] May 14, 2025
cac68ec
chore: bump package version and remove unused dockerfile
jgbernalp May 15, 2025
da93c10
Merge pull request #105 from jgbernalp/bump-version
jgbernalp May 15, 2025
29d4600
OU-804: Add help text to namespace filter
andreasgerstmayr May 15, 2025
bb115c5
OU-805: account for selected time range when showing attribute values
andreasgerstmayr May 15, 2025
3e4c12f
add andreasgerstmayr to owners
PeterYurkovich May 15, 2025
625aa27
Merge pull request #109 from PeterYurkovich/add-owners
openshift-merge-bot[bot] May 15, 2025
c0cb755
Merge pull request #108 from andreasgerstmayr/filterbar-time-range
openshift-merge-bot[bot] May 15, 2025
7ec3b87
Use RHEL 8 golang builder to resolve GLIBC_2.32 not found issue
IshwarKanse May 16, 2025
b2faeb4
Merge pull request #115 from IshwarKanse/trdockerfiles
openshift-merge-bot[bot] May 16, 2025
771a3a9
Merge remote-tracking branch 'upstream/main' into namespace-help-text
andreasgerstmayr May 16, 2025
a2d1c26
Merge pull request #107 from andreasgerstmayr/namespace-help-text
openshift-merge-bot[bot] May 16, 2025
ab3c837
Update tests after the filter feature
IshwarKanse May 15, 2025
6d50c05
fix var
IshwarKanse May 16, 2025
f3579e6
Merge pull request #113 from IshwarKanse/updateuitests
openshift-merge-bot[bot] May 16, 2025
2a81578
TRACING-5408: Refresh query if Tempo instance or tenant changes
andreasgerstmayr May 19, 2025
a6b899c
Merge pull request #122 from andreasgerstmayr/refresh-on-tempo-instan…
openshift-merge-bot[bot] May 20, 2025
1a4cb97
Update Perses dependencies to 0.51.0
andreasgerstmayr Jun 12, 2025
7ad8b39
NO-JIRA: improve API handling
andreasgerstmayr Jun 13, 2025
d2893a6
Merge pull request #126 from andreasgerstmayr/update-perses-to-v0.51.0
openshift-merge-bot[bot] Jun 23, 2025
7803f38
Merge pull request #127 from andreasgerstmayr/update-api-handling
openshift-merge-bot[bot] Jun 23, 2025
4ff02dd
Update Tempo fixtures after RHOSDT 3.6 release
IshwarKanse Jul 2, 2025
1abdcc9
Merge pull request #128 from IshwarKanse/tempofixtures
openshift-merge-bot[bot] Jul 2, 2025
5f24b03
TRACING-5480: Update @mui/x-data-grid
andreasgerstmayr Jul 14, 2025
17f366c
OU-553: Forward start/end values to TraceQL auto-completion
andreasgerstmayr Jul 14, 2025
fd7426d
Fix and improve Tracing UI plugin tests
IshwarKanse Jul 15, 2025
63a48a3
Merge pull request #133 from IshwarKanse/rbacui
openshift-merge-bot[bot] Jul 17, 2025
7466bf1
Improve Tracing UI plugin tests
IshwarKanse Jul 18, 2025
ddaa48b
Merge pull request #136 from IshwarKanse/rbacui
openshift-merge-bot[bot] Jul 18, 2025
4da4c05
Support installing COO in custom namespace
IshwarKanse Jul 20, 2025
fbc4643
Merge pull request #138 from IshwarKanse/coo
openshift-merge-bot[bot] Jul 21, 2025
8fd5330
Merge pull request #131 from andreasgerstmayr/update-mui-datagrid
openshift-merge-bot[bot] Jul 29, 2025
c1efdd9
Merge pull request #132 from andreasgerstmayr/forward-time-range
openshift-merge-bot[bot] Jul 29, 2025
aaa3d7d
Fix test asserts to work on upstream and downstream
IshwarKanse Aug 5, 2025
c262426
Merge pull request #141 from IshwarKanse/scatter
openshift-merge-bot[bot] Aug 6, 2025
f894c79
Update to go v1.24
zhuje Aug 20, 2025
0b0c874
Merge pull request #144 from zhuje/go1.24
openshift-merge-bot[bot] Aug 25, 2025
10d5eb2
Add patch version to go 1.24.0
zhuje Aug 25, 2025
6ec922d
Merge pull request #145 from zhuje/go1.24_patch
openshift-merge-bot[bot] Aug 26, 2025
54a9a47
Test Traces MUI box cutout functionality.
IshwarKanse Aug 26, 2025
3bdb54a
Merge pull request #146 from IshwarKanse/trace
openshift-merge-bot[bot] Aug 28, 2025
35146b4
TRACING-5606: Update Console Plugin SDK and Typescript
andreasgerstmayr Sep 9, 2025
c0e375f
Merge pull request #150 from andreasgerstmayr/update-ts
openshift-merge-bot[bot] Sep 9, 2025
3f57732
TRACING-5604: Upgrade Perses to v0.52.0-rc.1
andreasgerstmayr Sep 8, 2025
409e11d
Merge pull request #149 from andreasgerstmayr/upgrade-perses-v0.52
openshift-merge-bot[bot] Sep 16, 2025
7aafacc
OU-1000: Fix link to Tempo docs
andreasgerstmayr Oct 9, 2025
819c4f8
OU-809: Switching from TraceQL to the Filter Bar should always be per…
andreasgerstmayr Oct 9, 2025
4c7c0af
COO-1017: Support pressing ENTER in filter bar
andreasgerstmayr Oct 9, 2025
b4dfc62
NO-JIRA: be explicit about unsupported instances without multi-tenancy
andreasgerstmayr Oct 9, 2025
8179b35
COO-1118: Show an actionable error message if the namespace filter is…
andreasgerstmayr Oct 9, 2025
a544bfc
TRACING-5455: Do not sort select box items based on their selection s…
andreasgerstmayr Oct 9, 2025
f541f55
Merge pull request #151 from andreasgerstmayr/fix-doc-link
openshift-merge-bot[bot] Oct 9, 2025
12b99c2
Merge pull request #154 from andreasgerstmayr/support-enter-press-in-…
openshift-merge-bot[bot] Oct 9, 2025
f14c169
NO-JIRA: Enable MUI CSS variables, upgrade @patternfly/react-charts
andreasgerstmayr Oct 9, 2025
5238c39
TRACING-5579: Support custom time range
andreasgerstmayr Oct 9, 2025
cbde12b
Merge pull request #156 from andreasgerstmayr/no-sort-typeahead-check…
openshift-merge-bot[bot] Oct 9, 2025
150b091
Merge pull request #152 from andreasgerstmayr/never-disable-hide-quer…
openshift-merge-bot[bot] Oct 9, 2025
9c5d3c2
TRACING-5579: Update Cypress tests for Material-UI time range component
IshwarKanse Oct 10, 2025
6fc589d
Merge pull request #159 from IshwarKanse/tmrange
openshift-merge-bot[bot] Oct 10, 2025
0a5d5bb
Update Cypress to resolve CVE-2025-7783
andreasgerstmayr Oct 13, 2025
4180a86
Merge pull request #158 from andreasgerstmayr/mui-pf-theme
openshift-merge-bot[bot] Oct 14, 2025
8ffdc5e
Merge pull request #162 from andreasgerstmayr/update-cypress
openshift-merge-bot[bot] Oct 14, 2025
47ac476
Merge pull request #157 from andreasgerstmayr/custom-time-range
openshift-merge-bot[bot] Oct 15, 2025
320d6ad
Merge remote-tracking branch 'upstream/main' into explicit-multitenancy
andreasgerstmayr Oct 15, 2025
33bc9ba
Merge remote-tracking branch 'upstream/main' into namespace-no-result…
andreasgerstmayr Oct 15, 2025
b788760
NO-JIRA: Do not fetch filter bar values on every re-render, and preve…
andreasgerstmayr Oct 15, 2025
ecc2786
Merge pull request #153 from andreasgerstmayr/namespace-no-results-he…
openshift-merge-bot[bot] Oct 15, 2025
fc3aa1a
Merge pull request #155 from andreasgerstmayr/explicit-multitenancy
openshift-merge-bot[bot] Oct 15, 2025
3def8e5
Add test for span links and other fixes.
IshwarKanse Sep 16, 2025
a5ac532
Merge pull request #164 from andreasgerstmayr/fix-filterbar-requests
openshift-merge-bot[bot] Oct 16, 2025
d03237c
NO-JIRA: Regenerate locales
andreasgerstmayr Oct 16, 2025
b0b7250
Merge pull request #163 from IshwarKanse/spanmetrics
openshift-merge-bot[bot] Oct 16, 2025
99c6c19
Merge pull request #165 from andreasgerstmayr/update-locales
openshift-merge-bot[bot] Oct 16, 2025
930aa99
Merge remote-tracking branch 'upstream/main' into backport-0.4
andreasgerstmayr Oct 16, 2025
c443067
Revert PF6 changes
andreasgerstmayr Oct 16, 2025
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
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ RUN make install-frontend-ci-clean
COPY web/ web/
RUN make build-frontend

FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_golang_1.23 as go-builder
FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_golang_1.24 as go-builder

WORKDIR /opt/app-root

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RUN make install-frontend-ci-clean
COPY web/ web/
RUN make build-frontend

FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_golang_1.23 as go-builder
FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_golang_1.24 as go-builder

WORKDIR /opt/app-root

Expand Down
53 changes: 0 additions & 53 deletions Dockerfile.konflux

This file was deleted.

2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/openshift/distributed-tracing-console-plugin

go 1.22.1
go 1.24.0

require (
github.com/evanphx/json-patch v5.6.0+incompatible
Expand Down
38 changes: 38 additions & 0 deletions pkg/api/common.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package api

import (
"encoding/json"
"fmt"
"net/http"
)

type Response struct {
Status StatusType `json:"status"`
ErrorType string `json:"errorType,omitempty"`
Error string `json:"error,omitempty"`
Data any `json:"data,omitempty"`
}

type StatusType string

const (
StatusSuccess StatusType = "success"
StatusError StatusType = "error"
)

func writeResponse(w http.ResponseWriter, code int, r Response) {
if r.Status != StatusSuccess {
log.Error(fmt.Sprintf("type=%s, error=%s", r.ErrorType, r.Error))
}

bytes, err := json.Marshal(r)
if err != nil {
log.Error(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}

w.Header().Set("Content-Type", "application/json")
w.WriteHeader(code)
w.Write(bytes)
}
40 changes: 4 additions & 36 deletions pkg/api/tempo.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package api

import (
"context"
"encoding/json"
"fmt"
"net/http"

Expand All @@ -14,7 +13,7 @@ import (
"k8s.io/client-go/dynamic"
)

var log = logrus.WithField("module", "api.tempo")
var log = logrus.WithField("module", "api")

type TempoResource struct {
Kind KindType `json:"kind"`
Expand All @@ -31,20 +30,6 @@ const (
KindTempoMonolithic KindType = "TempoMonolithic"
)

type ListTempoResourcesResponse struct {
Status StatusType `json:"status"`
Data []TempoResource `json:"data"`
ErrorType string `json:"errorType,omitempty"`
Error string `json:"error,omitempty"`
}

type StatusType string

const (
StatusSuccess StatusType = "success"
StatusError StatusType = "error"
)

var (
tempostackGVR = schema.GroupVersionResource{
Group: "tempo.grafana.com",
Expand All @@ -58,44 +43,27 @@ var (
}
)

func writeResponse(w http.ResponseWriter, code int, r ListTempoResourcesResponse) {
if r.Status == StatusError {
log.Error(fmt.Sprintf("type=%s, error=%s", r.ErrorType, r.Error))
}

bytes, err := json.Marshal(r)
if err != nil {
log.Error(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}

w.Header().Set("Content-Type", "application/json")
w.WriteHeader(code)
w.Write(bytes)
}

func ListTempoResourcesHandler(k8sclient *dynamic.DynamicClient) http.HandlerFunc {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
resources, err := ListTempoResources(r.Context(), k8sclient)
if err != nil {
if apierrors.IsNotFound(err) {
writeResponse(w, http.StatusNotFound, ListTempoResourcesResponse{
writeResponse(w, http.StatusNotFound, Response{
Status: StatusError,
ErrorType: "TempoCRDNotFound",
Error: err.Error(),
})
return
}

writeResponse(w, http.StatusInternalServerError, ListTempoResourcesResponse{
writeResponse(w, http.StatusInternalServerError, Response{
Status: StatusError,
Error: err.Error(),
})
return
}

writeResponse(w, http.StatusOK, ListTempoResourcesResponse{
writeResponse(w, http.StatusOK, Response{
Status: StatusSuccess,
Data: resources,
})
Expand Down
2 changes: 1 addition & 1 deletion web/.eslintrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ parser: '@typescript-eslint/parser'
parserOptions:
ecmaFeatures:
jsx: true
ecmaVersion: 2016
ecmaVersion: 2021
sourceType: module
plugins:
- prettier
Expand Down
18 changes: 5 additions & 13 deletions web/locales/en/plugin__distributed-tracing-console-plugin.json
Original file line number Diff line number Diff line change
@@ -1,33 +1,23 @@
{
"Last 5 minutes": "Last 5 minutes",
"Last 15 minutes": "Last 15 minutes",
"Last 30 minutes": "Last 30 minutes",
"Last 1 hour": "Last 1 hour",
"Last 6 hours": "Last 6 hours",
"Last 12 hours": "Last 12 hours",
"Last 1 day": "Last 1 day",
"Last 7 days": "Last 7 days",
"Time range": "Time range",
"Select a time range": "Select a time range",
"No Tempo instance selected": "No Tempo instance selected",
"To explore data, select a Tempo instance and run a query.": "To explore data, select a Tempo instance and run a query.",
"Tempo instance": "Tempo instance",
"Select a Tempo instance": "Select a Tempo instance",
"TempoStack and TempoMonolithic instances with multi-tenancy are supported. Instances without multi-tenancy are not supported.": "TempoStack and TempoMonolithic instances with multi-tenancy are supported. Instances without multi-tenancy are not supported.",
"Tenant": "Tenant",
"Select a tenant": "Select a tenant",
"Time range": "Time range",
"Traces": "Traces",
"Trace details": "Trace details",
"Trace": "Trace",
"Tracing": "Tracing",
"Limit traces": "Limit traces",
"No datapoints found.": "No datapoints found.",
"Hide graph": "Hide graph",
"Show graph": "Show graph",
"Filter": "Filter",
"Namespace": "Namespace",
"Filter by namespace": "Filter by namespace",
"This filter is based on the <1>k8s.namespace.name</1> resource attribute. To set this attribute, it is recommended to enable the <4>Kubernetes Attributes Processor</4> in your OpenTelemetry Collector pipeline.": "This filter is based on the <1>k8s.namespace.name</1> resource attribute. To set this attribute, it is recommended to enable the <4>Kubernetes Attributes Processor</4> in your OpenTelemetry Collector pipeline.",
"No results found. Please ensure that the <2>Kubernetes Attributes Processor</2><3></3>is enabled in your OpenTelemetry collector pipeline.": "No results found. Please ensure that the <2>Kubernetes Attributes Processor</2><3></3>is enabled in your OpenTelemetry collector pipeline.",
"between {{min}} and {{max}}": "between {{min}} and {{max}}",
"greater than {{min}}": "greater than {{min}}",
"less than {{max}}": "less than {{max}}",
Expand All @@ -43,16 +33,18 @@
"TraceQL Query": "TraceQL Query",
"Query": "Query",
"Run query": "Run query",
"Error connecting to the Tracing UI plugin backend": "Error connecting to the Tracing UI plugin backend",
"Tempo operator isn't installed yet": "Tempo operator isn't installed yet",
"To get started, install the Tempo operator and create a TempoStack or TempoMonolithic instance with multi-tenancy enabled.": "To get started, install the Tempo operator and create a TempoStack or TempoMonolithic instance with multi-tenancy enabled.",
"Install Tempo operator": "Install Tempo operator",
"No Tempo instances yet": "No Tempo instances yet",
"To get started, create a TempoStack or TempoMonolithic instance with multi-tenancy enabled.": "To get started, create a TempoStack or TempoMonolithic instance with multi-tenancy enabled.",
"To get started, create a TempoStack or TempoMonolithic instance with multi-tenancy enabled.<1></1>Instances without multi-tenancy are not supported.": "To get started, create a TempoStack or TempoMonolithic instance with multi-tenancy enabled.<1></1>Instances without multi-tenancy are not supported.",
"Create a Tempo instance": "Create a Tempo instance",
"Create a TempoStack instance": "Create a TempoStack instance",
"Create a TempoMonolithic instance": "Create a TempoMonolithic instance",
"View documentation": "View documentation",
"Error": "Error",
"Unknown error": "Unknown error",
"No results found": "No results found",
"No results match this query criteria. Clear all filters and try again.": "No results match this query criteria. Clear all filters and try again.",
"Clear all filters": "Clear all filters"
Expand Down
Loading