Skip to content

Commit 29f1b3e

Browse files
committed
--story=129925419 下发Telemetry资源需要区分版本 (merge request !2672)
Squash merge branch 'fix-mesh-manager-telemetry' into 'master' fix 下发Telemetry资源需要区分版本 TAPD: --story=129925419
1 parent 7ca5469 commit 29f1b3e

File tree

17 files changed

+758
-717
lines changed

17 files changed

+758
-717
lines changed

bcs-common/pkg/bcsapi/meshmanager/bcs-mesh-manager.pb.go

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bcs-services/bcs-mesh-manager/cmd/mesh-manager-migrate/internal/migrator/migrator.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -505,9 +505,9 @@ func (m *Migrator) buildObservabilityConfig(
505505
}
506506

507507
// 采样率配置
508+
// istio < 1.21 版本使用 Pilot.TraceSampling(0.0-100.0)
508509
if values.Pilot != nil && values.Pilot.TraceSampling != nil {
509-
// Pilot 中的采样率是 0.0-1.0,需要转换为百分比
510-
obsConfig.TracingConfig.TraceSamplingPercent = int32(*values.Pilot.TraceSampling * 100)
510+
obsConfig.TracingConfig.TraceSamplingPercent = float32(*values.Pilot.TraceSampling)
511511
}
512512

513513
return obsConfig

bcs-services/bcs-mesh-manager/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ require (
1919
github.com/grpc-ecosystem/grpc-gateway v1.16.0
2020
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1
2121
github.com/imdario/mergo v0.3.13
22+
github.com/pkg/errors v0.9.1
2223
github.com/prometheus/client_golang v1.19.0
2324
github.com/stretchr/testify v1.10.0
2425
github.com/urfave/cli/v2 v2.3.0
@@ -155,7 +156,6 @@ require (
155156
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
156157
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
157158
github.com/pjbgf/sha1cd v0.3.0 // indirect
158-
github.com/pkg/errors v0.9.1 // indirect
159159
github.com/pmezard/go-difflib v1.0.0 // indirect
160160
github.com/prometheus/client_model v0.5.0 // indirect
161161
github.com/prometheus/common v0.48.0 // indirect

bcs-services/bcs-mesh-manager/pkg/clients/k8s/istio.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ func DeleteIstioCrd(ctx context.Context, clusterID string) error {
254254
}
255255

256256
// DeployTelemetry 部署Telemetry资源用于链路追踪
257-
func DeployTelemetry(ctx context.Context, clusterID []string, randomSamplingPercnt int) error {
257+
func DeployTelemetry(ctx context.Context, clusterID []string, randomSamplingPercnt float32) error {
258258
for _, cluster := range clusterID {
259259
if err := DeployResourceByYAML(
260260
ctx,

bcs-services/bcs-mesh-manager/pkg/common/feature.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func GetDefaultObservabilityConfig() *meshmanager.ObservabilityConfig {
145145
Enabled: wrapperspb.Bool(false),
146146
Endpoint: wrapperspb.String(""),
147147
BkToken: wrapperspb.String(""),
148-
TraceSamplingPercent: wrapperspb.Int32(10),
148+
TraceSamplingPercent: wrapperspb.Float(10),
149149
},
150150
}
151151
}

bcs-services/bcs-mesh-manager/pkg/common/monitoring.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ spec:
9696
tracing:
9797
- providers:
9898
- name: otel-tracing
99-
randomSamplingPercentage: %d`
99+
randomSamplingPercentage: %.2f`
100100

101101
// GetPodMonitorYAML 获取PodMonitor YAML模板
102102
func GetPodMonitorYAML(name string) string {
@@ -109,7 +109,7 @@ func GetServiceMonitorYAML(name string) string {
109109
}
110110

111111
// GetTelemetryYAML 获取Telemetry YAML模板
112-
func GetTelemetryYAML(samplePercentage int) string {
112+
func GetTelemetryYAML(samplePercentage float32) string {
113113
return fmt.Sprintf(TelemetryTemplate, samplePercentage)
114114
}
115115

bcs-services/bcs-mesh-manager/pkg/common/values.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ type IstiodPilotConfig struct {
126126
AutoscaleMin *int32 `yaml:"autoscaleMin,omitempty"`
127127
AutoscaleMax *int32 `yaml:"autoscaleMax,omitempty"`
128128
ReplicaCount *int32 `yaml:"replicaCount,omitempty"`
129-
TraceSampling *float64 `yaml:"traceSampling,omitempty"`
129+
TraceSampling *float32 `yaml:"traceSampling,omitempty"`
130130
ConfigMap *bool `yaml:"configMap,omitempty"`
131131
CPU *HPACPUConfig `yaml:"cpu,omitempty"`
132132
Env map[string]string `yaml:"env,omitempty"`

bcs-services/bcs-mesh-manager/pkg/operation/actions/istio_install.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,10 +161,16 @@ func (i *IstioInstallAction) deployTelemetry(ctx context.Context) error {
161161
return nil
162162
}
163163

164+
// istio 1.21以上版本才通过Telemetry API下发
165+
if !utils.IsVersionSupported(i.ChartVersion, ">=1.21") {
166+
blog.Infof("[%s]istio version %s is less than 1.21, skip deploying Telemetry resource", i.MeshID, i.ChartVersion)
167+
return nil
168+
}
169+
164170
// 下发Telemetry 资源
165-
traceSamplingPercent := 1
171+
traceSamplingPercent := float32(1)
166172
if i.ObservabilityConfig.TracingConfig.TraceSamplingPercent != nil {
167-
traceSamplingPercent = int(i.ObservabilityConfig.TracingConfig.TraceSamplingPercent.GetValue())
173+
traceSamplingPercent = float32(i.ObservabilityConfig.TracingConfig.TraceSamplingPercent.GetValue())
168174
}
169175

170176
if err := k8s.DeployTelemetry(ctx, i.PrimaryClusters, traceSamplingPercent); err != nil {

bcs-services/bcs-mesh-manager/pkg/operation/actions/istio_update.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,15 @@ func (i *IstioUpdateAction) updateTelemetry(ctx context.Context) error {
170170

171171
// 更新链路追踪资源
172172
if i.ObservabilityConfig.TracingConfig.Enabled.GetValue() {
173-
traceSamplingPercent := 1
173+
// istio 1.21以上版本才通过Telemetry API下发
174+
if !utils.IsVersionSupported(*i.ChartVersion, ">=1.21") {
175+
blog.Infof("[%s]istio version %s is less than 1.21, skip deploying Telemetry resource", i.MeshID, *i.ChartVersion)
176+
return nil
177+
}
178+
179+
traceSamplingPercent := float32(1)
174180
if i.ObservabilityConfig.TracingConfig.TraceSamplingPercent.GetValue() != 0 {
175-
traceSamplingPercent = int(i.ObservabilityConfig.TracingConfig.TraceSamplingPercent.GetValue())
181+
traceSamplingPercent = float32(i.ObservabilityConfig.TracingConfig.TraceSamplingPercent.GetValue())
176182
}
177183
if err := k8s.DeployTelemetry(ctx, i.PrimaryClusters, traceSamplingPercent); err != nil {
178184
blog.Errorf("[%s]deploy Telemetry failed for clusters, err: %s", i.MeshID, err)

bcs-services/bcs-mesh-manager/pkg/store/entity/mesh_istio.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,10 @@ type LogCollectorConfig struct {
119119

120120
// TracingConfig represents tracing configuration
121121
type TracingConfig struct {
122-
Enabled bool `bson:"enabled" json:"enabled"`
123-
Endpoint string `bson:"endpoint" json:"endpoint"`
124-
BkToken string `bson:"bkToken" json:"bkToken"`
125-
TraceSamplingPercent int32 `bson:"traceSamplingPercent" json:"traceSamplingPercent"`
122+
Enabled bool `bson:"enabled" json:"enabled"`
123+
Endpoint string `bson:"endpoint" json:"endpoint"`
124+
BkToken string `bson:"bkToken" json:"bkToken"`
125+
TraceSamplingPercent float32 `bson:"traceSamplingPercent" json:"traceSamplingPercent"`
126126
}
127127

128128
// FeatureConfig represents a feature configuration
@@ -241,7 +241,7 @@ func (m *MeshIstio) Transfer2ProtoForDetail() *meshmanager.IstioDetailInfo {
241241
Enabled: wrapperspb.Bool(m.ObservabilityConfig.TracingConfig.Enabled),
242242
Endpoint: wrapperspb.String(m.ObservabilityConfig.TracingConfig.Endpoint),
243243
BkToken: wrapperspb.String(m.ObservabilityConfig.TracingConfig.BkToken),
244-
TraceSamplingPercent: wrapperspb.Int32(m.ObservabilityConfig.TracingConfig.TraceSamplingPercent),
244+
TraceSamplingPercent: wrapperspb.Float(m.ObservabilityConfig.TracingConfig.TraceSamplingPercent),
245245
}
246246
}
247247
}

0 commit comments

Comments
 (0)