Skip to content

Properly set gRPC resolver scheme

Mikhail Mazurskiy requested to merge ash2k/set-grpc-scheme into master

Relates to #446 (closed).

Properly set gRPC resolver scheme according to https://github.com/grpc/grpc/blob/master/doc/naming.md. The point of this is to support connecting to multiple IP addresses if the DNS name resolves into more than one. Also, just correctness and cleaner logs. Note that this improves the situation only in grpc/grpcs modes as WebSocket mode uses the stdlib http package to do the name resolution (and dialing), not gRPC's resolver. So, not a big deal overall.

agentk original grpc scheme (note fallback to scheme message):

$ agentk --kas-address=grpc://172.16.123.1:8159 --context=rancher-desktop --token-file=/Users/mike/src/kas-stuff/token-gdk-a1.txt

{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1] Channel created"}
{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1] original dial target is: \"172.16.123.1:8159\""}
{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1] dial target \"172.16.123.1:8159\" parse failed: parse \"172.16.123.1:8159\": first path segment in URL cannot contain colon"}
{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1] fallback to scheme \"passthrough\""}
{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1] parsed dial target is: {URL:{Scheme:passthrough Opaque: User: Host: Path:/172.16.123.1:8159 RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1] Channel authority set to \"172.16.123.1:8159\""}
{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"172.16.123.1:8159\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel created"}
{"level":"info","time":"2023-08-22T10:19:00.781+1000","msg":"[core] [Channel #1] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3] Channel created"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3] original dial target is: \"pipe\""}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3] parsed dial target is: {URL:{Scheme: Opaque: User: Host: Path:pipe RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3] fallback to scheme \"passthrough\""}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3] parsed dial target is: {URL:{Scheme:passthrough Opaque: User: Host: Path:/pipe RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3] Channel authority set to \"pipe\""}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"pipe\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel created"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000f8f0, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel picks a new address \"172.16.123.1:8159\" to connect"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel picks a new address \"pipe\" to connect"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] [Server #5] Server created"}
{"level":"info","time":"2023-08-22T10:19:00.782+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000f920, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T10:19:00.783+1000","msg":"[core] CPU time info is unavailable on non-linux environments."}
{"level":"info","time":"2023-08-22T10:19:00.786+1000","msg":"[core] [Server #5 ListenSocket #7] ListenSocket created"}
{"level":"info","time":"2023-08-22T10:19:00.786+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T10:19:00.786+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000f920, {READY <nil>}"}
{"level":"info","time":"2023-08-22T10:19:00.786+1000","msg":"[core] [Channel #3] Channel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T10:19:00.787+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T10:19:00.787+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000f8f0, {READY <nil>}"}
{"level":"info","time":"2023-08-22T10:19:00.787+1000","msg":"[core] [Channel #1] Channel Connectivity change to READY"}

agentk grpc scheme with tweaks (no fallback to scheme message):

$ agentk --kas-address=grpc://172.16.123.1:8159 --context=rancher-desktop --token-file=/Users/mike/src/kas-stuff/token-gdk-a1.txt

{"level":"info","time":"2023-08-22T10:30:59.669+1000","msg":"[core] [Channel #1] Channel created"}
{"level":"info","time":"2023-08-22T10:30:59.670+1000","msg":"[core] [Channel #1] original dial target is: \"dns:172.16.123.1:8159\""}
{"level":"info","time":"2023-08-22T10:30:59.670+1000","msg":"[core] [Channel #1] parsed dial target is: {URL:{Scheme:dns Opaque:172.16.123.1:8159 User: Host: Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T10:30:59.670+1000","msg":"[core] [Channel #1] Channel authority set to \"172.16.123.1:8159\""}
{"level":"info","time":"2023-08-22T10:30:59.670+1000","msg":"[core] [Channel #1] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"172.16.123.1:8159\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T10:30:59.670+1000","msg":"[core] [Channel #1] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T10:30:59.670+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel created"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #1] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3] Channel created"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3] original dial target is: \"passthrough:pipe\""}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3] parsed dial target is: {URL:{Scheme:passthrough Opaque:pipe User: Host: Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3] Channel authority set to \"pipe\""}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel picks a new address \"172.16.123.1:8159\" to connect"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"pipe\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x140004b4048, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel created"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel picks a new address \"pipe\" to connect"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x14000716300, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T10:30:59.671+1000","msg":"[core] [Server #5] Server created"}
{"level":"info","time":"2023-08-22T10:30:59.672+1000","msg":"[core] CPU time info is unavailable on non-linux environments."}
{"level":"info","time":"2023-08-22T10:30:59.674+1000","msg":"[core] [Server #5 ListenSocket #7] ListenSocket created"}
{"level":"info","time":"2023-08-22T10:30:59.675+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T10:30:59.675+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x14000716300, {READY <nil>}"}
{"level":"info","time":"2023-08-22T10:30:59.675+1000","msg":"[core] [Channel #3] Channel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T10:30:59.676+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T10:30:59.676+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x140004b4048, {READY <nil>}"}
{"level":"info","time":"2023-08-22T10:30:59.676+1000","msg":"[core] [Channel #1] Channel Connectivity change to READY"}

agentk original wss/ws scheme:

$ agentk --kas-address=wss://gdk.test:3443/-/kubernetes-agent --context=rancher-desktop --token-file=/Users/mike/src/kas-stuff/token-gdk-a1.txt

{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1] Channel created"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1] original dial target is: \"wss://gdk.test:3443/-/kubernetes-agent\""}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1] parsed dial target is: {URL:{Scheme:wss Opaque: User: Host:gdk.test:3443 Path:/-/kubernetes-agent RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1] fallback to scheme \"passthrough\""}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1] parsed dial target is: {URL:{Scheme:passthrough Opaque: User: Host: Path:/wss://gdk.test:3443/-/kubernetes-agent RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1] Channel authority set to \"wss:%2F%2Fgdk.test:3443%2F-%2Fkubernetes-agent\""}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"wss://gdk.test:3443/-/kubernetes-agent\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel created"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #3] Channel created"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #3] original dial target is: \"passthrough:pipe\""}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #3] parsed dial target is: {URL:{Scheme:passthrough Opaque:pipe User: Host: Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #3] Channel authority set to \"pipe\""}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #3] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"pipe\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #3] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel created"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #3] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel picks a new address \"wss://gdk.test:3443/-/kubernetes-agent\" to connect"}
{"level":"info","time":"2023-08-22T10:53:34.460+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000f668, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T10:53:34.459+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T10:53:34.460+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel picks a new address \"pipe\" to connect"}
{"level":"info","time":"2023-08-22T10:53:34.460+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000f698, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T10:53:34.460+1000","msg":"[core] [Server #5] Server created"}
{"level":"info","time":"2023-08-22T10:53:34.465+1000","msg":"[core] [Server #5 ListenSocket #6] ListenSocket created"}
{"level":"info","time":"2023-08-22T10:53:34.465+1000","msg":"[core] CPU time info is unavailable on non-linux environments."}
{"level":"info","time":"2023-08-22T10:53:34.466+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T10:53:34.466+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000f698, {READY <nil>}"}
{"level":"info","time":"2023-08-22T10:53:34.466+1000","msg":"[core] [Channel #3] Channel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T10:53:34.492+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T10:53:34.492+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000f668, {READY <nil>}"}
{"level":"info","time":"2023-08-22T10:53:34.492+1000","msg":"[core] [Channel #1] Channel Connectivity change to READY"}

agentk wss/ws scheme with tweaks:

$ agentk --kas-address=wss://gdk.test:3443/-/kubernetes-agent --context=rancher-desktop --token-file=/Users/mike/src/kas-stuff/token-gdk-a1.txt

{"level":"info","time":"2023-08-22T11:33:29.715+1000","msg":"[core] [Channel #1] Channel created"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #1] original dial target is: \"passthrough:wss://gdk.test:3443/-/kubernetes-agent\""}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #1] parsed dial target is: {URL:{Scheme:passthrough Opaque:wss://gdk.test:3443/-/kubernetes-agent User: Host: Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #1] Channel authority set to \"wss:%2F%2Fgdk.test:3443%2F-%2Fkubernetes-agent\""}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #1] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"wss://gdk.test:3443/-/kubernetes-agent\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #1] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel created"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #1] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3] Channel created"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3] original dial target is: \"passthrough:pipe\""}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3] parsed dial target is: {URL:{Scheme:passthrough Opaque:pipe User: Host: Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3] Channel authority set to \"pipe\""}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"pipe\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel picks a new address \"wss://gdk.test:3443/-/kubernetes-agent\" to connect"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel created"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Server #5] Server created"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x140006115f0, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel picks a new address \"pipe\" to connect"}
{"level":"info","time":"2023-08-22T11:33:29.716+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x14000611620, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T11:33:29.719+1000","msg":"[core] [Server #5 ListenSocket #6] ListenSocket created"}
{"level":"info","time":"2023-08-22T11:33:29.719+1000","msg":"[core] CPU time info is unavailable on non-linux environments."}
{"level":"info","time":"2023-08-22T11:33:29.719+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T11:33:29.719+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x14000611620, {READY <nil>}"}
{"level":"info","time":"2023-08-22T11:33:29.719+1000","msg":"[core] [Channel #3] Channel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T11:33:29.733+1000","msg":"[core] [Channel #1 SubChannel #2] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T11:33:29.734+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x140006115f0, {READY <nil>}"}
{"level":"info","time":"2023-08-22T11:33:29.734+1000","msg":"[core] [Channel #1] Channel Connectivity change to READY"}

Original kas:

$ kas --configuration-file=/Users/mike/src/gdk/gitlab-k8s-agent-config.yml

{"level":"info","time":"2023-08-22T21:32:33.195+1000","msg":"[core] [Server #1] Server created"}
{"level":"info","time":"2023-08-22T21:32:33.195+1000","msg":"[core] [Server #2] Server created"}
{"level":"info","time":"2023-08-22T21:32:33.195+1000","msg":"[core] [Channel #3] Channel created"}
{"level":"info","time":"2023-08-22T21:32:33.195+1000","msg":"[core] [Channel #3] original dial target is: \"pipe\""}
{"level":"info","time":"2023-08-22T21:32:33.195+1000","msg":"[core] [Channel #3] parsed dial target is: {URL:{Scheme: Opaque: User: Host: Path:pipe RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T21:32:33.195+1000","msg":"[core] [Channel #3] fallback to scheme \"passthrough\""}
{"level":"info","time":"2023-08-22T21:32:33.195+1000","msg":"[core] [Channel #3] parsed dial target is: {URL:{Scheme:passthrough Opaque: User: Host: Path:/pipe RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T21:32:33.195+1000","msg":"[core] [Channel #3] Channel authority set to \"pipe\""}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #3] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"pipe\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #3] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel created"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #3] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Server #5] Server created"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Server #6] Server created"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7] Channel created"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7] original dial target is: \"pipe\""}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7] parsed dial target is: {URL:{Scheme: Opaque: User: Host: Path:pipe RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7] fallback to scheme \"passthrough\""}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7] parsed dial target is: {URL:{Scheme:passthrough Opaque: User: Host: Path:/pipe RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7] Channel authority set to \"pipe\""}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"pipe\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel picks a new address \"pipe\" to connect"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7 SubChannel #8] Subchannel created"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Server #9] Server created"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000dad0, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7 SubChannel #8] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] [Channel #7 SubChannel #8] Subchannel picks a new address \"pipe\" to connect"}
{"level":"info","time":"2023-08-22T21:32:33.196+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x14000570000, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T21:32:33.197+1000","msg":"[core] [Server #6 ListenSocket #10] ListenSocket created"}
{"level":"info","time":"2023-08-22T21:32:33.197+1000","msg":"[core] [Server #9 ListenSocket #11] ListenSocket created"}
{"level":"info","time":"2023-08-22T21:32:33.197+1000","msg":"[core] CPU time info is unavailable on non-linux environments."}
{"level":"info","time":"2023-08-22T21:32:33.197+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T21:32:33.197+1000","msg":"[core] [Server #5 ListenSocket #16] ListenSocket created"}
{"level":"info","time":"2023-08-22T21:32:33.197+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400000dad0, {READY <nil>}"}
{"level":"info","time":"2023-08-22T21:32:33.197+1000","msg":"[core] [Channel #3] Channel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T21:32:33.197+1000","msg":"[core] [Channel #7 SubChannel #8] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T21:32:33.197+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x14000570000, {READY <nil>}"}
{"level":"info","time":"2023-08-22T21:32:33.198+1000","msg":"[core] [Channel #7] Channel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T21:32:33.198+1000","msg":"[core] [Server #1 ListenSocket #17] ListenSocket created"}
{"level":"info","time":"2023-08-22T21:32:33.198+1000","msg":"[core] [Server #2 ListenSocket #18] ListenSocket created"}

kas with tweaks:

$ kas --configuration-file=/Users/mike/src/gdk/gitlab-k8s-agent-config.yml

{"level":"info","time":"2023-08-22T21:13:52.656+1000","msg":"[core] [Server #1] Server created"}
{"level":"info","time":"2023-08-22T21:13:52.656+1000","msg":"[core] [Server #2] Server created"}
{"level":"info","time":"2023-08-22T21:13:52.656+1000","msg":"[core] [Channel #3] Channel created"}
{"level":"info","time":"2023-08-22T21:13:52.656+1000","msg":"[core] [Channel #3] original dial target is: \"passthrough:pipe\""}
{"level":"info","time":"2023-08-22T21:13:52.656+1000","msg":"[core] [Channel #3] parsed dial target is: {URL:{Scheme:passthrough Opaque:pipe User: Host: Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T21:13:52.656+1000","msg":"[core] [Channel #3] Channel authority set to \"pipe\""}
{"level":"info","time":"2023-08-22T21:13:52.656+1000","msg":"[core] [Channel #3] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"pipe\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T21:13:52.656+1000","msg":"[core] [Channel #3] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #3] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Server #5] Server created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Server #6] Server created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7] Channel created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7] original dial target is: \"passthrough:pipe\""}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7] parsed dial target is: {URL:{Scheme:passthrough Opaque:pipe User: Host: Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}}"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7] Channel authority set to \"pipe\""}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7] Resolver state updated: {\n  \"Addresses\": [\n    {\n      \"Addr\": \"pipe\",\n      \"ServerName\": \"\",\n      \"Attributes\": null,\n      \"BalancerAttributes\": null,\n      \"Type\": 0,\n      \"Metadata\": null\n    }\n  ],\n  \"ServiceConfig\": null,\n  \"Attributes\": null\n} (resolver returned new addresses)"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7] Channel switches to new LB policy \"pick_first\""}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel picks a new address \"pipe\" to connect"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7 SubChannel #8] Subchannel created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7] Channel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400015c7b0, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7 SubChannel #8] Subchannel Connectivity change to CONNECTING"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Server #9] Server created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7 SubChannel #8] Subchannel picks a new address \"pipe\" to connect"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400040c060, {CONNECTING <nil>}"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Server #9 ListenSocket #10] ListenSocket created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Server #6 ListenSocket #11] ListenSocket created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] CPU time info is unavailable on non-linux environments."}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Server #2 ListenSocket #13] ListenSocket created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Server #5 ListenSocket #17] ListenSocket created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Server #1 ListenSocket #18] ListenSocket created"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7 SubChannel #8] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400040c060, {READY <nil>}"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #3 SubChannel #4] Subchannel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #7] Channel Connectivity change to READY"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] pickfirstBalancer: UpdateSubConnState: 0x1400015c7b0, {READY <nil>}"}
{"level":"info","time":"2023-08-22T21:13:52.657+1000","msg":"[core] [Channel #3] Channel Connectivity change to READY"}
Edited by Mikhail Mazurskiy

Merge request reports

Loading