Skip to content

Commit

Permalink
Merge pull request #1915 from murgatroid99/grpc-js_channelz
Browse files Browse the repository at this point in the history
Add channelz support and the admin interface
  • Loading branch information
murgatroid99 authored Oct 6, 2021
2 parents aeb4273 + 2756a59 commit 3e5d102
Show file tree
Hide file tree
Showing 73 changed files with 4,200 additions and 161 deletions.
11 changes: 2 additions & 9 deletions packages/grpc-js-xds/src/load-balancer-eds.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,14 +185,7 @@ export class EdsLoadBalancer implements LoadBalancer {
private concurrentRequests: number = 0;

constructor(private readonly channelControlHelper: ChannelControlHelper) {
this.childBalancer = new ChildLoadBalancerHandler({
createSubchannel: (subchannelAddress, subchannelArgs) =>
this.channelControlHelper.createSubchannel(
subchannelAddress,
subchannelArgs
),
requestReresolution: () =>
this.channelControlHelper.requestReresolution(),
this.childBalancer = new ChildLoadBalancerHandler(experimental.createChildChannelControlHelper(this.channelControlHelper, {
updateState: (connectivityState, originalPicker) => {
if (this.latestEdsUpdate === null) {
return;
Expand Down Expand Up @@ -243,7 +236,7 @@ export class EdsLoadBalancer implements LoadBalancer {
};
this.channelControlHelper.updateState(connectivityState, edsPicker);
},
});
}));
this.watcher = {
onValidUpdate: (update) => {
trace('Received EDS update for ' + this.edsServiceName + ': ' + JSON.stringify(update, undefined, 2));
Expand Down
10 changes: 2 additions & 8 deletions packages/grpc-js-xds/src/load-balancer-lrs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,20 +174,14 @@ export class LrsLoadBalancer implements LoadBalancer {
private localityStatsReporter: XdsClusterLocalityStats | null = null;

constructor(private channelControlHelper: ChannelControlHelper) {
this.childBalancer = new ChildLoadBalancerHandler({
createSubchannel: (subchannelAddress, subchannelArgs) =>
channelControlHelper.createSubchannel(
subchannelAddress,
subchannelArgs
),
requestReresolution: () => channelControlHelper.requestReresolution(),
this.childBalancer = new ChildLoadBalancerHandler(experimental.createChildChannelControlHelper(channelControlHelper, {
updateState: (connectivityState: ConnectivityState, picker: Picker) => {
if (this.localityStatsReporter !== null) {
picker = new LoadReportingPicker(picker, this.localityStatsReporter);
}
channelControlHelper.updateState(connectivityState, picker);
},
});
}));
}

updateAddressList(
Expand Down
16 changes: 2 additions & 14 deletions packages/grpc-js-xds/src/load-balancer-priority.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,23 +139,11 @@ export class PriorityLoadBalancer implements LoadBalancer {
private failoverTimer: NodeJS.Timer | null = null;
private deactivationTimer: NodeJS.Timer | null = null;
constructor(private parent: PriorityLoadBalancer, private name: string) {
this.childBalancer = new ChildLoadBalancerHandler({
createSubchannel: (
subchannelAddress: SubchannelAddress,
subchannelArgs: ChannelOptions
) => {
return this.parent.channelControlHelper.createSubchannel(
subchannelAddress,
subchannelArgs
);
},
this.childBalancer = new ChildLoadBalancerHandler(experimental.createChildChannelControlHelper(this.parent.channelControlHelper, {
updateState: (connectivityState: ConnectivityState, picker: Picker) => {
this.updateState(connectivityState, picker);
},
requestReresolution: () => {
this.parent.channelControlHelper.requestReresolution();
},
});
}));
this.picker = new QueuePicker(this.childBalancer);
}

Expand Down
12 changes: 3 additions & 9 deletions packages/grpc-js-xds/src/load-balancer-weighted-target.ts
Original file line number Diff line number Diff line change
Expand Up @@ -168,17 +168,11 @@ export class WeightedTargetLoadBalancer implements LoadBalancer {
private weight: number = 0;

constructor(private parent: WeightedTargetLoadBalancer, private name: string) {
this.childBalancer = new ChildLoadBalancerHandler({
createSubchannel: (subchannelAddress, subchannelOptions) => {
return this.parent.channelControlHelper.createSubchannel(subchannelAddress, subchannelOptions);
},
updateState: (connectivityState, picker) => {
this.childBalancer = new ChildLoadBalancerHandler(experimental.createChildChannelControlHelper(this.parent.channelControlHelper, {
updateState: (connectivityState: ConnectivityState, picker: Picker) => {
this.updateState(connectivityState, picker);
},
requestReresolution: () => {
this.parent.channelControlHelper.requestReresolution();
}
});
}));

this.picker = new QueuePicker(this.childBalancer);
}
Expand Down
12 changes: 3 additions & 9 deletions packages/grpc-js-xds/src/load-balancer-xds-cluster-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,17 +131,11 @@ class XdsClusterManager implements LoadBalancer {
private childBalancer: ChildLoadBalancerHandler;

constructor(private parent: XdsClusterManager, private name: string) {
this.childBalancer = new ChildLoadBalancerHandler({
createSubchannel: (subchannelAddress, subchannelOptions) => {
return this.parent.channelControlHelper.createSubchannel(subchannelAddress, subchannelOptions);
},
updateState: (connectivityState, picker) => {
this.childBalancer = new ChildLoadBalancerHandler(experimental.createChildChannelControlHelper(this.parent.channelControlHelper, {
updateState: (connectivityState: ConnectivityState, picker: Picker) => {
this.updateState(connectivityState, picker);
},
requestReresolution: () => {
this.parent.channelControlHelper.requestReresolution();
}
});
}));

this.picker = new QueuePicker(this.childBalancer);
}
Expand Down
5 changes: 3 additions & 2 deletions packages/grpc-js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
"types": "build/src/index.d.ts",
"license": "Apache-2.0",
"devDependencies": {
"@grpc/proto-loader": "^0.5.5",
"@types/gulp": "^4.0.6",
"@types/gulp-mocha": "0.0.32",
"@types/lodash": "^4.14.108",
Expand Down Expand Up @@ -54,9 +53,11 @@
"check": "gts check src/**/*.ts",
"fix": "gts fix src/*.ts",
"pretest": "npm run compile",
"posttest": "npm run check && madge -c ./build/src"
"posttest": "npm run check && madge -c ./build/src",
"generate-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --includeComments --includeDirs proto/ -O src/generated/ --grpcLib ../index channelz.proto"
},
"dependencies": {
"@grpc/proto-loader": "^0.6.4",
"@types/node": ">=12.12.47"
},
"files": [
Expand Down
Loading

0 comments on commit 3e5d102

Please sign in to comment.