1{{- if .Values.mixer.adapters.stackdriver.enabled }} 2apiVersion: "config.istio.io/v1alpha2" 3kind: handler 4metadata: 5 name: stackdriver 6 namespace: {{ .Release.Namespace }} 7 labels: 8 app: istio-telemetry 9 release: {{ .Release.Name }} 10spec: 11 compiledAdapter: stackdriver 12 params: 13 {{- if .Values.mixer.adapters.stackdriver.tracer.enabled }} 14 trace: 15 sampleProbability: {{ .Values.mixer.adapters.stackdriver.tracer.sampleProbability | default 1 }} 16 {{- end }} 17 pushInterval: 10s 18 {{- if ne .Values.mixer.adapters.stackdriver.auth.serviceAccountPath "" }} 19 serviceAccountPath: {{ .Values.mixer.adapters.stackdriver.auth.serviceAccountPath }} 20 {{- end }} 21 {{- if ne .Values.mixer.adapters.stackdriver.auth.apiKey "" }} 22 apiKey: {{ .Values.mixer.adapters.stackdriver.auth.apiKey }} 23 {{- end }} 24 {{- if .Values.mixer.adapters.stackdriver.auth.appCredentials }} 25 appCredentials: {{ .Values.mixer.adapters.stackdriver.auth.appCredentials }} 26 {{- end }} 27 {{- if .Values.mixer.adapters.stackdriver.metrics.enabled }} 28 metricInfo: 29 server-request-count.instance.{{ .Release.Namespace }}: 30 # Due to a bug in gogoproto deserialization, Enums in maps must be 31 # specified by their integer value, not variant name. See 32 # https://github.com/googleapis/googleapis/blob/master/google/api/metric.proto 33 # MetricKind and ValueType for the values to provide. 34 kind: 3 # CUMULATIVE 35 value: 2 # INT64 36 metric_type: "istio.io/service/server/request_count" 37 server-request-bytes.instance.{{ .Release.Namespace }}: 38 kind: 3 # CUMULATIVE 39 value: 5 # DISTRIBUTION 40 buckets: 41 exponentialBuckets: 42 numFiniteBuckets: 20 43 scale: 1 44 growthFactor: 2 45 metric_type: "istio.io/service/server/request_bytes" 46 server-response-bytes.instance.{{ .Release.Namespace }}: 47 kind: 3 # CUMULATIVE 48 value: 5 # DISTRIBUTION 49 buckets: 50 exponentialBuckets: 51 numFiniteBuckets: 20 52 scale: 1 53 growthFactor: 2 54 metric_type: "istio.io/service/server/response_bytes" 55 server-response-latencies.instance.{{ .Release.Namespace }}: 56 kind: 3 # CUMULATIVE 57 value: 5 # DISTRIBUTION 58 buckets: 59 exponentialBuckets: 60 numFiniteBuckets: 20 61 scale: 1 62 growthFactor: 2 63 metric_type: "istio.io/service/server/response_latencies" 64 server-received-bytes-count.instance.{{ .Release.Namespace }}: 65 kind: 3 # CUMULATIVE 66 value: 2 # INT64 67 metric_type: "istio.io/service/server/received_bytes_count" 68 server-sent-bytes-count.instance.{{ .Release.Namespace }}: 69 kind: 3 # CUMULATIVE 70 value: 2 # INT64 71 metric_type: "istio.io/service/server/sent_bytes_count" 72 client-request-count.instance.{{ .Release.Namespace }}: 73 kind: 3 # CUMULATIVE 74 value: 2 # INT64 75 metric_type: "istio.io/service/client/request_count" 76 client-request-bytes.instance.{{ .Release.Namespace }}: 77 kind: 3 # CUMULATIVE 78 value: 5 # DISTRIBUTION 79 buckets: 80 exponentialBuckets: 81 numFiniteBuckets: 20 82 scale: 1 83 growthFactor: 2 84 metric_type: "istio.io/service/client/request_bytes" 85 client-response-bytes.instance.{{ .Release.Namespace }}: 86 kind: 3 # CUMULATIVE 87 value: 5 # DISTRIBUTION 88 buckets: 89 exponentialBuckets: 90 numFiniteBuckets: 20 91 scale: 1 92 growthFactor: 2 93 metric_type: "istio.io/service/client/response_bytes" 94 client-roundtrip-latencies.instance.{{ .Release.Namespace }}: 95 kind: 3 # CUMULATIVE 96 value: 5 # DISTRIBUTION 97 buckets: 98 exponentialBuckets: 99 numFiniteBuckets: 20 100 scale: 1 101 growthFactor: 2 102 metric_type: "istio.io/service/client/roundtrip_latencies" 103 client-received-bytes-count.instance.{{ .Release.Namespace }}: 104 kind: 3 # CUMULATIVE 105 value: 2 # INT64 106 metric_type: "istio.io/service/client/received_bytes_count" 107 client-sent-bytes-count.instance.{{ .Release.Namespace }}: 108 kind: 3 # CUMULATIVE 109 value: 2 # INT64 110 metric_type: "istio.io/service/client/sent_bytes_count" 111 {{- end }} 112 {{- if .Values.mixer.adapters.stackdriver.logging.enabled }} 113 logInfo: 114 server-accesslog-stackdriver.instance.{{ .Release.Namespace }}: 115 labelNames: 116 - mesh_uid 117 - source_uid 118 - source_ip 119 - source_app 120 - source_principal 121 - source_name 122 - source_workload 123 - source_namespace 124 - source_owner 125 - destination_uid 126 - destination_app 127 - destination_ip 128 - destination_service_host 129 - destination_workload 130 - destination_name 131 - destination_namespace 132 - destination_owner 133 - destination_principal 134 - api_name 135 - api_version 136 - api_claims 137 - api_key 138 - request_operation 139 - protocol 140 - method 141 - url 142 - response_code 143 - response_size 144 - request_size 145 - request_id 146 - latency 147 - service_authentication_policy 148 - user_agent 149 - response_timestamp 150 - received_bytes 151 - sent_bytes 152 - referer 153 server-tcp-accesslog-stackdriver.instance.{{ .Release.Namespace }}: 154 labelNames: 155 - mesh_uid 156 - connection_id 157 - connection_event 158 - source_uid 159 - source_ip 160 - source_app 161 - source_principal 162 - source_name 163 - source_workload 164 - source_namespace 165 - source_owner 166 - destination_uid 167 - destination_app 168 - destination_ip 169 - destination_service_host 170 - destination_workload 171 - destination_name 172 - destination_namespace 173 - destination_owner 174 - destination_principal 175 - protocol 176 - connction_duration 177 - service_authentication_policy 178 - received_bytes 179 - sent_bytes 180 - total_received_bytes 181 - total_sent_bytes 182 {{- end }} 183--- 184{{- if .Values.mixer.adapters.stackdriver.metrics.enabled }} 185################################################# 186############## Metric Config #################### 187################################################# 188apiVersion: "config.istio.io/v1alpha2" 189kind: rule 190metadata: 191 name: stackdriver-server 192 namespace: {{ .Release.Namespace }} 193 labels: 194 app: istio-telemetry 195 release: {{ .Release.Name }} 196spec: 197 match: (context.protocol == "http" || context.protocol == "grpc") && (context.reporter.kind | "inbound" == "inbound") 198 actions: 199 - handler: stackdriver 200 instances: 201 - server-request-count 202 - server-request-bytes 203 - server-response-bytes 204 - server-response-latencies 205--- 206apiVersion: "config.istio.io/v1alpha2" 207kind: rule 208metadata: 209 name: stackdriver-client 210 namespace: {{ .Release.Namespace }} 211 labels: 212 app: istio-telemetry 213 release: {{ .Release.Name }} 214spec: 215 match: (context.protocol == "http" || context.protocol == "grpc") && (context.reporter.kind | "inbound" == "outbound") 216 actions: 217 - handler: stackdriver 218 instances: 219 - client-request-count 220 - client-request-bytes 221 - client-response-bytes 222 - client-roundtrip-latencies 223--- 224apiVersion: "config.istio.io/v1alpha2" 225kind: rule 226metadata: 227 name: stackdriver-tcp-server 228 namespace: {{ .Release.Namespace }} 229 labels: 230 app: istio-telemetry 231 release: {{ .Release.Name }} 232spec: 233 match: context.protocol == "tcp" && (context.reporter.kind | "inbound" == "inbound") 234 actions: 235 - handler: stackdriver 236 instances: 237 - server-received-bytes-count 238 - server-sent-bytes-count 239--- 240apiVersion: "config.istio.io/v1alpha2" 241kind: rule 242metadata: 243 name: stackdriver-tcp-client 244 namespace: {{ .Release.Namespace }} 245 labels: 246 app: istio-telemetry 247 release: {{ .Release.Name }} 248spec: 249 match: context.protocol == "tcp" && (context.reporter.kind | "inbound" == "outbound") 250 actions: 251 - handler: stackdriver 252 instances: 253 - client-received-bytes-count 254 - client-sent-bytes-count 255--- 256apiVersion: "config.istio.io/v1alpha2" 257kind: instance 258metadata: 259 name: server-request-count 260 namespace: {{ .Release.Namespace }} 261 labels: 262 app: istio-telemetry 263 release: {{ .Release.Name }} 264spec: 265 compiledTemplate: metric 266 params: 267 value: "1" 268 dimensions: 269 mesh_uid: '"{{ .Values.global.meshID }}"' 270 destination_service_name: destination.service.name | "unknown" 271 destination_service_namespace: destination.service.namespace | "unknown" 272 destination_port: destination.port | 0 273 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 274 request_protocol: context.protocol | "unknown" 275 api_version: api.version | "unknown" 276 api_name: api.service | "unknown" 277 response_code: response.code | 0 278 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 279 source_workload_namespace: source.workload.namespace | "unknown" 280 source_workload_name: source.workload.name | "unknown" 281 source_owner: source.owner | "unknown" 282 destination_workload_namespace: destination.workload.namespace | "unknown" 283 destination_workload_name: destination.workload.name | "unknown" 284 destination_owner: destination.owner | "unknown" 285 destination_principal: destination.principal | "unknown" 286 source_principal: source.principal | "unknown" 287 monitoredResourceType: '"k8s_container"' 288 monitoredResourceDimensions: 289 project_id: '""' 290 cluster_name: '""' 291 namespace_name: destination.workload.namespace | "unknown" 292 location: '""' 293 container_name: conditional((destination.name | "unknown").startsWith("istio-telemetry") || (destination.name | "unknown").startsWith("istio-policy"), "mixer", destination.container.name | "unknown") 294 pod_name: destination.name | "unknown" 295--- 296apiVersion: "config.istio.io/v1alpha2" 297kind: instance 298metadata: 299 name: client-request-count 300 namespace: {{ .Release.Namespace }} 301 labels: 302 app: istio-telemetry 303 release: {{ .Release.Name }} 304spec: 305 compiledTemplate: metric 306 params: 307 value: "1" 308 dimensions: 309 mesh_uid: '"{{ .Values.global.meshID }}"' 310 destination_service_name: destination.service.name | "unknown" 311 destination_service_namespace: destination.service.namespace | "unknown" 312 destination_port: destination.port | 0 313 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 314 request_protocol: context.protocol | "unknown" 315 api_version: api.version | "unknown" 316 api_name: api.service | "unknown" 317 response_code: response.code | 0 318 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 319 source_workload_namespace: source.workload.namespace | "unknown" 320 source_workload_name: source.workload.name | "unknown" 321 source_owner: source.owner | "unknown" 322 destination_workload_namespace: destination.workload.namespace | "unknown" 323 destination_workload_name: destination.workload.name | "unknown" 324 destination_owner: destination.owner | "unknown" 325 destination_principal: destination.principal | "unknown" 326 source_principal: source.principal | "unknown" 327 monitoredResourceType: '"k8s_pod"' 328 monitoredResourceDimensions: 329 project_id: '""' 330 cluster_name: '""' 331 namespace_name: source.workload.namespace | "unknown" 332 location: '""' 333 pod_name: source.name | "unknown" 334--- 335apiVersion: "config.istio.io/v1alpha2" 336kind: instance 337metadata: 338 name: server-request-bytes 339 namespace: {{ .Release.Namespace }} 340 labels: 341 app: istio-telemetry 342 release: {{ .Release.Name }} 343spec: 344 compiledTemplate: metric 345 params: 346 value: request.total_size 347 dimensions: 348 mesh_uid: '"{{ .Values.global.meshID }}"' 349 destination_service_name: destination.service.name | "unknown" 350 destination_service_namespace: destination.service.namespace | "unknown" 351 destination_port: destination.port | 0 352 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 353 request_protocol: context.protocol | "unknown" 354 api_version: api.version | "unknown" 355 api_name: api.service | "unknown" 356 response_code: response.code | 0 357 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 358 source_workload_namespace: source.workload.namespace | "unknown" 359 source_workload_name: source.workload.name | "unknown" 360 source_owner: source.owner | "unknown" 361 destination_workload_namespace: destination.workload.namespace | "unknown" 362 destination_workload_name: destination.workload.name | "unknown" 363 destination_owner: destination.owner | "unknown" 364 destination_principal: destination.principal | "unknown" 365 source_principal: source.principal | "unknown" 366 monitoredResourceType: '"k8s_container"' 367 monitoredResourceDimensions: 368 project_id: '""' 369 cluster_name: '""' 370 namespace_name: destination.workload.namespace | "unknown" 371 location: '""' 372 container_name: conditional((destination.name | "unknown").startsWith("istio-telemetry") || (destination.name | "unknown").startsWith("istio-policy"), "mixer", destination.container.name | "unknown") 373 pod_name: destination.name | "unknown" 374--- 375apiVersion: "config.istio.io/v1alpha2" 376kind: instance 377metadata: 378 name: client-request-bytes 379 namespace: {{ .Release.Namespace }} 380 labels: 381 app: istio-telemetry 382 release: {{ .Release.Name }} 383spec: 384 compiledTemplate: metric 385 params: 386 value: request.total_size 387 dimensions: 388 mesh_uid: '"{{ .Values.global.meshID }}"' 389 destination_service_name: destination.service.name | "unknown" 390 destination_service_namespace: destination.service.namespace | "unknown" 391 destination_port: destination.port | 0 392 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 393 request_protocol: context.protocol | "unknown" 394 api_version: api.version | "unknown" 395 api_name: api.service | "unknown" 396 response_code: response.code | 0 397 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 398 source_workload_namespace: source.workload.namespace | "unknown" 399 source_workload_name: source.workload.name | "unknown" 400 source_owner: source.owner | "unknown" 401 destination_workload_namespace: destination.workload.namespace | "unknown" 402 destination_workload_name: destination.workload.name | "unknown" 403 destination_owner: destination.owner | "unknown" 404 destination_principal: destination.principal | "unknown" 405 source_principal: source.principal | "unknown" 406 monitoredResourceType: '"k8s_pod"' 407 monitoredResourceDimensions: 408 project_id: '""' 409 cluster_name: '""' 410 namespace_name: source.workload.namespace | "unknown" 411 location: '""' 412 pod_name: source.name | "unknown" 413--- 414apiVersion: "config.istio.io/v1alpha2" 415kind: instance 416metadata: 417 name: server-response-bytes 418 namespace: {{ .Release.Namespace }} 419 labels: 420 app: istio-telemetry 421 release: {{ .Release.Name }} 422spec: 423 compiledTemplate: metric 424 params: 425 value: response.total_size 426 dimensions: 427 mesh_uid: '"{{ .Values.global.meshID }}"' 428 destination_service_name: destination.service.name | "unknown" 429 destination_service_namespace: destination.service.namespace | "unknown" 430 destination_port: destination.port | 0 431 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 432 request_protocol: context.protocol | "unknown" 433 api_version: api.version | "unknown" 434 api_name: api.service | "unknown" 435 response_code: response.code | 0 436 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 437 source_workload_namespace: source.workload.namespace | "unknown" 438 source_workload_name: source.workload.name | "unknown" 439 source_owner: source.owner | "unknown" 440 destination_workload_namespace: destination.workload.namespace | "unknown" 441 destination_workload_name: destination.workload.name | "unknown" 442 destination_owner: destination.owner | "unknown" 443 destination_principal: destination.principal | "unknown" 444 source_principal: source.principal | "unknown" 445 monitoredResourceType: '"k8s_container"' 446 monitoredResourceDimensions: 447 project_id: '""' 448 cluster_name: '""' 449 namespace_name: destination.workload.namespace | "unknown" 450 location: '""' 451 container_name: conditional((destination.name | "unknown").startsWith("istio-telemetry") || (destination.name | "unknown").startsWith("istio-policy"), "mixer", destination.container.name | "unknown") 452 pod_name: destination.name | "unknown" 453--- 454apiVersion: "config.istio.io/v1alpha2" 455kind: instance 456metadata: 457 name: client-response-bytes 458 namespace: {{ .Release.Namespace }} 459 labels: 460 app: istio-telemetry 461 release: {{ .Release.Name }} 462spec: 463 compiledTemplate: metric 464 params: 465 value: response.total_size 466 dimensions: 467 mesh_uid: '"{{ .Values.global.meshID }}"' 468 destination_service_name: destination.service.name | "unknown" 469 destination_service_namespace: destination.service.namespace | "unknown" 470 destination_port: destination.port | 0 471 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 472 request_protocol: context.protocol | "unknown" 473 api_version: api.version | "unknown" 474 api_name: api.service | "unknown" 475 response_code: response.code | 0 476 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 477 source_workload_namespace: source.workload.namespace | "unknown" 478 source_workload_name: source.workload.name | "unknown" 479 source_owner: source.owner | "unknown" 480 destination_workload_namespace: destination.workload.namespace | "unknown" 481 destination_workload_name: destination.workload.name | "unknown" 482 destination_owner: destination.owner | "unknown" 483 destination_principal: destination.principal | "unknown" 484 source_principal: source.principal | "unknown" 485 monitoredResourceType: '"k8s_pod"' 486 monitoredResourceDimensions: 487 project_id: '""' 488 cluster_name: '""' 489 namespace_name: source.workload.namespace | "unknown" 490 location: '""' 491 pod_name: source.name | "unknown" 492--- 493apiVersion: "config.istio.io/v1alpha2" 494kind: instance 495metadata: 496 name: server-response-latencies 497 namespace: {{ .Release.Namespace }} 498 labels: 499 app: istio-telemetry 500 release: {{ .Release.Name }} 501spec: 502 compiledTemplate: metric 503 params: 504 value: response.duration 505 dimensions: 506 mesh_uid: '"{{ .Values.global.meshID }}"' 507 destination_service_name: destination.service.name | "unknown" 508 destination_service_namespace: destination.service.namespace | "unknown" 509 destination_port: destination.port | 0 510 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 511 request_protocol: context.protocol | "unknown" 512 api_version: api.version | "unknown" 513 api_name: api.service | "unknown" 514 response_code: response.code | 0 515 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 516 source_workload_namespace: source.workload.namespace | "unknown" 517 source_workload_name: source.workload.name | "unknown" 518 source_owner: source.owner | "unknown" 519 destination_workload_namespace: destination.workload.namespace | "unknown" 520 destination_workload_name: destination.workload.name | "unknown" 521 destination_owner: destination.owner | "unknown" 522 destination_principal: destination.principal | "unknown" 523 source_principal: source.principal | "unknown" 524 monitoredResourceType: '"k8s_container"' 525 monitoredResourceDimensions: 526 project_id: '""' 527 cluster_name: '""' 528 namespace_name: destination.workload.namespace | "unknown" 529 location: '""' 530 container_name: conditional((destination.name | "unknown").startsWith("istio-telemetry") || (destination.name | "unknown").startsWith("istio-policy"), "mixer", destination.container.name | "unknown") 531 pod_name: destination.name | "unknown" 532--- 533apiVersion: "config.istio.io/v1alpha2" 534kind: instance 535metadata: 536 name: client-roundtrip-latencies 537 namespace: {{ .Release.Namespace }} 538 labels: 539 app: istio-telemetry 540 release: {{ .Release.Name }} 541spec: 542 compiledTemplate: metric 543 params: 544 value: response.duration 545 dimensions: 546 mesh_uid: '"{{ .Values.global.meshID }}"' 547 destination_service_name: destination.service.name | "unknown" 548 destination_service_namespace: destination.service.namespace | "unknown" 549 destination_port: destination.port | 0 550 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 551 request_protocol: context.protocol | "unknown" 552 api_version: api.version | "unknown" 553 api_name: api.service | "unknown" 554 response_code: response.code | 0 555 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 556 source_workload_namespace: source.workload.namespace | "unknown" 557 source_workload_name: source.workload.name | "unknown" 558 source_owner: source.owner | "unknown" 559 destination_workload_namespace: destination.workload.namespace | "unknown" 560 destination_workload_name: destination.workload.name | "unknown" 561 destination_owner: destination.owner | "unknown" 562 destination_principal: destination.principal | "unknown" 563 source_principal: source.principal | "unknown" 564 monitoredResourceType: '"k8s_pod"' 565 monitoredResourceDimensions: 566 project_id: '""' 567 cluster_name: '""' 568 namespace_name: source.workload.namespace | "unknown" 569 location: '""' 570 pod_name: source.name | "unknown" 571--- 572apiVersion: "config.istio.io/v1alpha2" 573kind: instance 574metadata: 575 name: server-received-bytes-count 576 namespace: {{ .Release.Namespace }} 577 labels: 578 app: istio-telemetry 579 release: {{ .Release.Name }} 580spec: 581 compiledTemplate: metric 582 params: 583 value: connection.received.bytes | 0 584 dimensions: 585 mesh_uid: '"{{ .Values.global.meshID }}"' 586 destination_service_name: destination.service.name | "unknown" 587 destination_service_namespace: destination.service.namespace | "unknown" 588 destination_port: destination.port | 0 589 request_protocol: context.protocol | "unknown" 590 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 591 source_workload_namespace: source.workload.namespace | "unknown" 592 source_workload_name: source.workload.name | "unknown" 593 source_owner: source.owner | "unknown" 594 destination_workload_namespace: destination.workload.namespace | "unknown" 595 destination_workload_name: destination.workload.name | "unknown" 596 destination_owner: destination.owner | "unknown" 597 destination_principal: destination.principal | "unknown" 598 source_principal: source.principal | "unknown" 599 monitoredResourceType: '"k8s_container"' 600 monitoredResourceDimensions: 601 project_id: '""' 602 cluster_name: '""' 603 namespace_name: destination.workload.namespace | "unknown" 604 location: '""' 605 container_name: conditional((destination.name | "unknown").startsWith("istio-telemetry") || (destination.name | "unknown").startsWith("istio-policy"), "mixer", destination.container.name | "unknown") 606 pod_name: destination.name | "unknown" 607--- 608apiVersion: "config.istio.io/v1alpha2" 609kind: instance 610metadata: 611 name: client-received-bytes-count 612 namespace: {{ .Release.Namespace }} 613 labels: 614 app: istio-telemetry 615 release: {{ .Release.Name }} 616spec: 617 compiledTemplate: metric 618 params: 619 value: connection.received.bytes | 0 620 dimensions: 621 mesh_uid: '"{{ .Values.global.meshID }}"' 622 destination_service_name: destination.service.name | "unknown" 623 destination_service_namespace: destination.service.namespace | "unknown" 624 destination_port: destination.port | 0 625 request_protocol: context.protocol | "unknown" 626 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 627 source_workload_namespace: source.workload.namespace | "unknown" 628 source_workload_name: source.workload.name | "unknown" 629 source_owner: source.owner | "unknown" 630 destination_workload_namespace: destination.workload.namespace | "unknown" 631 destination_workload_name: destination.workload.name | "unknown" 632 destination_owner: destination.owner | "unknown" 633 destination_principal: destination.principal | "unknown" 634 source_principal: source.principal | "unknown" 635 monitoredResourceType: '"k8s_pod"' 636 monitoredResourceDimensions: 637 project_id: '""' 638 cluster_name: '""' 639 namespace_name: source.workload.namespace | "unknown" 640 location: '""' 641 pod_name: source.name | "unknown" 642--- 643apiVersion: "config.istio.io/v1alpha2" 644kind: instance 645metadata: 646 name: server-sent-bytes-count 647 namespace: {{ .Release.Namespace }} 648 labels: 649 app: istio-telemetry 650 release: {{ .Release.Name }} 651spec: 652 compiledTemplate: metric 653 params: 654 value: connection.sent.bytes | 0 655 dimensions: 656 mesh_uid: '"{{ .Values.global.meshID }}"' 657 destination_service_name: destination.service.name | "unknown" 658 destination_service_namespace: destination.service.namespace | "unknown" 659 destination_port: destination.port | 0 660 request_protocol: context.protocol | "unknown" 661 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 662 source_workload_namespace: source.workload.namespace | "unknown" 663 source_workload_name: source.workload.name | "unknown" 664 source_owner: source.owner | "unknown" 665 destination_workload_namespace: destination.workload.namespace | "unknown" 666 destination_workload_name: destination.workload.name | "unknown" 667 destination_owner: destination.owner | "unknown" 668 destination_principal: destination.principal | "unknown" 669 source_principal: source.principal | "unknown" 670 monitoredResourceType: '"k8s_container"' 671 monitoredResourceDimensions: 672 project_id: '""' 673 cluster_name: '""' 674 namespace_name: destination.workload.namespace | "unknown" 675 location: '""' 676 container_name: conditional((destination.name | "unknown").startsWith("istio-telemetry") || (destination.name | "unknown").startsWith("istio-policy"), "mixer", destination.container.name | "unknown") 677 pod_name: destination.name | "unknown" 678--- 679apiVersion: "config.istio.io/v1alpha2" 680kind: instance 681metadata: 682 name: client-sent-bytes-count 683 namespace: {{ .Release.Namespace }} 684 labels: 685 app: istio-telemetry 686 release: {{ .Release.Name }} 687spec: 688 compiledTemplate: metric 689 params: 690 value: connection.sent.bytes | 0 691 dimensions: 692 mesh_uid: '"{{ .Values.global.meshID }}"' 693 destination_service_name: destination.service.name | "unknown" 694 destination_service_namespace: destination.service.namespace | "unknown" 695 destination_port: destination.port | 0 696 request_protocol: context.protocol | "unknown" 697 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 698 source_workload_namespace: source.workload.namespace | "unknown" 699 source_workload_name: source.workload.name | "unknown" 700 source_owner: source.owner | "unknown" 701 destination_workload_namespace: destination.workload.namespace | "unknown" 702 destination_workload_name: destination.workload.name | "unknown" 703 destination_owner: destination.owner | "unknown" 704 destination_principal: destination.principal | "unknown" 705 source_principal: source.principal | "unknown" 706 monitoredResourceType: '"k8s_pod"' 707 monitoredResourceDimensions: 708 project_id: '""' 709 cluster_name: '""' 710 namespace_name: source.workload.namespace | "unknown" 711 location: '""' 712 pod_name: source.name | "unknown" 713{{- end }} 714--- 715{{- if .Values.mixer.adapters.stackdriver.logging.enabled }} 716apiVersion: "config.istio.io/v1alpha2" 717kind: instance 718metadata: 719 name: server-accesslog-stackdriver 720 namespace: {{ .Release.Namespace }} 721 labels: 722 app: istio-telemetry 723 release: {{ .Release.Name }} 724spec: 725 compiledTemplate: logentry 726 params: 727 severity: '"Info"' 728 timestamp: request.time 729 variables: 730 mesh_uid: '"{{ .Values.global.meshID }}"' 731 source_uid: source.uid | "" 732 source_ip: source.ip | ip("0.0.0.0") 733 source_app: source.labels["app"] | "" 734 source_principal: source.principal | "" 735 source_name: source.name | "" 736 source_workload: source.workload.name | "" 737 source_namespace: source.namespace | "" 738 source_owner: source.owner | "" 739 destination_uid: destination.uid | "" 740 destination_app: destination.labels["app"] | "" 741 destination_ip: destination.ip | ip("0.0.0.0") 742 destination_service_host: destination.service.host | "" 743 destination_workload: destination.workload.name | "" 744 destination_name: destination.name | "" 745 destination_namespace: destination.namespace | "" 746 destination_owner: destination.owner | "" 747 destination_principal: destination.principal | "" 748 api_name: api.service | "" 749 api_version: api.version | "" 750 api_claims: request.auth.raw_claims | "" 751 api_key: request.api_key | request.headers["x-api-key"] | "" 752 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 753 protocol: request.scheme | context.protocol | "http" 754 method: request.method | "" 755 url: request.path | "" 756 response_code: response.code | 0 757 response_size: response.size | 0 758 request_size: request.size | 0 759 request_id: request.headers["x-request-id"] | "" 760 latency: response.duration | "0ms" 761 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 762 user_agent: request.useragent | "" 763 response_timestamp: response.time 764 received_bytes: request.total_size | 0 765 sent_bytes: response.total_size | 0 766 referer: request.referer | "" 767 monitored_resource_type: '"k8s_container"' 768 monitoredResourceDimensions: 769 project_id: '""' 770 cluster_name: '""' 771 namespace_name: destination.namespace | "unknown" 772 location: '""' 773 container_name: conditional((destination.name | "unknown").startsWith("istio-telemetry") || (destination.name | "unknown").startsWith("istio-policy"), "mixer", destination.container.name | "unknown") 774 pod_name: destination.name | "unknown" 775--- 776apiVersion: "config.istio.io/v1alpha2" 777kind: instance 778metadata: 779 name: server-tcp-accesslog-stackdriver 780 namespace: {{ .Release.Namespace }} 781 labels: 782 app: istio-telemetry 783 release: {{ .Release.Name }} 784spec: 785 compiledTemplate: logentry 786 params: 787 severity: '"Info"' 788 timestamp: context.time | timestamp("2017-01-01T00:00:00Z") 789 variables: 790 mesh_uid: '"{{ .Values.global.meshID }}"' 791 source_uid: source.uid | "" 792 connection_id: connection.id | "" 793 connection_event: connection.event | "" 794 source_ip: source.ip | ip("0.0.0.0") 795 source_app: source.labels["app"] | "" 796 source_principal: source.principal | "" 797 source_name: source.name | "" 798 source_workload: source.workload.name | "" 799 source_namespace: source.namespace | "" 800 source_owner: source.owner | "" 801 destination_uid: destination.uid | "" 802 destination_app: destination.labels["app"] | "" 803 destination_ip: destination.ip | ip("0.0.0.0") 804 destination_service_host: destination.service.host | "" 805 destination_workload: destination.workload.name | "" 806 destination_name: destination.name | "" 807 destination_namespace: destination.namespace | "" 808 destination_owner: destination.owner | "" 809 destination_principal: destination.principal | "" 810 protocol: context.protocol | "tcp" 811 connction_duration: connection.duration | "0ms" 812 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 813 received_bytes: connection.received.bytes | 0 814 sent_bytes: connection.sent.bytes | 0 815 total_received_bytes: connection.received.bytes_total | 0 816 total_sent_bytes: connection.sent.bytes_total | 0 817 monitored_resource_type: '"k8s_container"' 818 monitoredResourceDimensions: 819 project_id: '""' 820 cluster_name: '""' 821 namespace_name: destination.namespace | "unknown" 822 location: '""' 823 container_name: conditional((destination.name | "unknown").startsWith("istio-telemetry") || (destination.name | "unknown").startsWith("istio-policy"), "mixer", destination.container.name | "unknown") 824 pod_name: destination.name | "unknown" 825--- 826apiVersion: "config.istio.io/v1alpha2" 827kind: rule 828metadata: 829 name: stackdriver-log 830 namespace: {{ .Release.Namespace }} 831 labels: 832 app: istio-telemetry 833 release: {{ .Release.Name }} 834spec: 835 match: (context.protocol == "http" || context.protocol == "grpc") && (context.reporter.kind | "inbound" == "inbound") 836 actions: 837 - handler: stackdriver 838 instances: 839 - server-accesslog-stackdriver 840--- 841apiVersion: "config.istio.io/v1alpha2" 842kind: rule 843metadata: 844 name: stackdriver-log-tcp 845 namespace: {{ .Release.Namespace }} 846 labels: 847 app: istio-telemetry 848 release: {{ .Release.Name }} 849spec: 850 match: (context.protocol == "tcp") && (context.reporter.kind | "inbound" == "inbound") 851 actions: 852 - handler: stackdriver 853 instances: 854 - server-tcp-accesslog-stackdriver 855{{- end }} 856--- 857{{- if .Values.mixer.adapters.stackdriver.tracer.enabled }} 858apiVersion: "config.istio.io/v1alpha2" 859kind: instance 860metadata: 861 name: stackdriver-span 862 namespace: {{ .Release.Namespace }} 863 labels: 864 app: istio-telemetry 865 release: {{ .Release.Name }} 866spec: 867 compiledTemplate: tracespan 868 params: 869 traceId: request.headers["x-b3-traceid"] 870 spanId: request.headers["x-b3-spanid"] | "" 871 parentSpanId: request.headers["x-b3-parentspanid"] | "" 872 spanName: destination.service.host | destination.service.name | destination.workload.name | "unknown" 873 startTime: request.time 874 endTime: response.time 875 clientSpan: (context.reporter.kind | "inbound") == "outbound" 876 rewriteClientSpanId: "true" 877 spanTags: 878 destination_service_name: destination.service.name | "unknown" 879 destination_service_namespace: destination.service.namespace | "unknown" 880 destination_port: destination.port | 0 881 request_operation: conditional((context.protocol | "unknown") == "grpc", request.path | "unknown", request.method | "unknown") 882 request_protocol: context.protocol | "unknown" 883 api_version: api.version | "unknown" 884 api_name: api.service | "unknown" 885 response_code: response.code | 0 886 service_authentication_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) 887 source_workload_namespace: source.workload.namespace | "unknown" 888 source_workload_name: source.workload.name | "unknown" 889 source_owner: source.owner | "unknown" 890 destination_workload_namespace: destination.workload.namespace | "unknown" 891 destination_workload_name: destination.workload.name | "unknown" 892 destination_owner: destination.owner | "unknown" 893 http_url: request.path | "" 894 request_size: request.size | 0 895 response_size: response.size | 0 896 source_ip: source.ip | ip("0.0.0.0") 897--- 898apiVersion: "config.istio.io/v1alpha2" 899kind: rule 900metadata: 901 name: stackdriver-tracing-rule 902 namespace: {{ .Release.Namespace }} 903 labels: 904 app: istio-telemetry 905 release: {{ .Release.Name }} 906spec: 907 match: (context.protocol == "http" || context.protocol == "grpc") && request.headers["x-b3-sampled"] == "1" && destination.workload.name != "istio-telemetry" && destination.workload.name != "istio-pilot" 908 actions: 909 - handler: stackdriver 910 instances: 911 - stackdriver-span 912{{- end }} 913--- 914{{- if .Values.mixer.adapters.stackdriver.contextGraph.enabled }} 915apiVersion: "config.istio.io/v1alpha2" 916kind: instance 917metadata: 918 name: stackdriver-edge 919 namespace: {{ .Release.Namespace }} 920 labels: 921 app: istio-telemetry 922 release: {{ .Release.Name }} 923spec: 924 compiledTemplate: edge 925 params: 926 timestamp: request.time | context.time | timestamp("2017-01-01T00:00:00Z") 927 sourceUid: source.uid | "Unknown" 928 sourceOwner: source.owner | "Unknown" 929 sourceWorkloadName: source.workload.name | "Unknown" 930 sourceWorkloadNamespace: source.workload.namespace | "Unknown" 931 destinationUid: destination.uid | "Unknown" 932 destinationOwner: destination.owner | "Unknown" 933 destinationWorkloadName: destination.workload.name | "Unknown" 934 destinationWorkloadNamespace: destination.workload.namespace | "Unknown" 935 contextProtocol: context.protocol | "Unknown" 936 apiProtocol: api.protocol | "Unknown" 937 destinationServiceName: destination.service.name | "Unknown" 938 destinationServiceNamespace: destination.service.namespace | "Unknown" 939--- 940apiVersion: "config.istio.io/v1alpha2" 941kind: rule 942metadata: 943 name: stackdriver-edge 944 namespace: {{ .Release.Namespace }} 945 labels: 946 app: istio-telemetry 947 release: {{ .Release.Name }} 948spec: 949 match: (context.reporter.kind | "inbound" == "inbound") && (context.protocol | "unknown" != "unknown") 950 actions: 951 - handler: stackdriver 952 instances: 953 - stackdriver-edge 954{{- end }} 955{{- end }} 956