Skip to content

Commit 2c8d0de

Browse files
committed
Save changes.
1 parent b64ff95 commit 2c8d0de

File tree

2 files changed

+65
-63
lines changed

2 files changed

+65
-63
lines changed

examples/example-opentelemetry/build.gradle

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ dependencies {
4040
protobuf {
4141
protoc { artifact = "com.google.protobuf:protoc:${protocVersion}" }
4242
plugins {
43-
grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" }
43+
grpc { artifact = "io.grpc:protoc-gen-grpc-java:1.79.0" }
4444
}
4545
generateProtoTasks {
4646
all()*.plugins { grpc {} }
@@ -83,8 +83,6 @@ application {
8383
from(OpenTelemetryHelloWorldClient)
8484
from(LoggingOpenTelemetryHelloWorldServer)
8585
from(LoggingOpenTelemetryHelloWorldClient)
86-
filePermissions {
87-
unix(0755)
88-
}
86+
fileMode = 0755
8987
}
9088
}

examples/example-opentelemetry/src/main/java/io/grpc/example/opentelemetry/OpenTelemetryServer.java

Lines changed: 63 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -65,69 +65,73 @@ private void blockUntilShutdown() throws InterruptedException {
6565
/**
6666
* Main launches the server from the command line.
6767
*/
68-
public static void main(String[] args) throws IOException, InterruptedException {
69-
// The port on which the server should run.
70-
int port = 50051;
71-
// The port on which prometheus metrics are exposed.
72-
int prometheusPort = 9464;
73-
74-
if (args.length > 0) {
75-
if ("--help".equals(args[0])) {
76-
System.err.println("Usage: [port [prometheus_port]]");
77-
System.err.println("");
78-
System.err.println(" port The port on which server will run. Defaults to " + port);
79-
System.err.println(" prometheusPort The port to expose prometheus metrics. Defaults to " + prometheusPort);
80-
System.exit(1);
68+
public static void main(String[] args) {
69+
try {
70+
// The port on which the server should run.
71+
int port = 50051;
72+
// The port on which prometheus metrics are exposed.
73+
int prometheusPort = 9464;
74+
75+
if (args.length > 0) {
76+
if ("--help".equals(args[0])) {
77+
System.err.println("Usage: [port [prometheus_port]]");
78+
System.err.println("");
79+
System.err.println(" port The port on which server will run. Defaults to " + port);
80+
System.err.println(" prometheusPort The port to expose prometheus metrics. Defaults to " + prometheusPort);
81+
System.exit(1);
82+
}
83+
port = Integer.parseInt(args[0]);
84+
}
85+
if (args.length > 1) {
86+
prometheusPort = Integer.parseInt(args[1]);
8187
}
82-
port = Integer.parseInt(args[0]);
83-
}
84-
if (args.length > 1) {
85-
prometheusPort = Integer.parseInt(args[1]);
86-
}
8788

88-
// Adds a PrometheusHttpServer to convert OpenTelemetry metrics to Prometheus format and
89-
// expose these via a HttpServer exporter to the SdkMeterProvider.
90-
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
91-
.registerMetricReader(
92-
PrometheusHttpServer.builder().setPort(prometheusPort).build())
93-
.build();
94-
95-
// Initialize OpenTelemetry SDK with MeterProvider configured with Prometheus metrics exporter
96-
OpenTelemetrySdk openTelemetrySdk =
97-
OpenTelemetrySdk.builder().setMeterProvider(sdkMeterProvider).build();
98-
99-
// Initialize gRPC OpenTelemetry.
100-
// Following client metrics are enabled by default :
101-
// 1. grpc.server.call.started
102-
// 2. grpc.server.call.sent_total_compressed_message_size
103-
// 3. grpc.server.call.rcvd_total_compressed_message_size
104-
// 4. grpc.server.call.duration
105-
GrpcOpenTelemetry grpcOpenTelmetry = GrpcOpenTelemetry.newBuilder()
106-
.sdk(openTelemetrySdk)
107-
.build();
108-
// Registers gRPC OpenTelemetry globally.
109-
grpcOpenTelmetry.registerGlobal();
110-
111-
final OpenTelemetryServer server = new OpenTelemetryServer();
112-
server.start(port);
113-
114-
Runtime.getRuntime().addShutdownHook(new Thread() {
115-
@Override
116-
public void run() {
117-
System.err.println("*** shutting down gRPC server since JVM is shutting down");
118-
try {
119-
server.stop();
120-
} catch (InterruptedException e) {
121-
e.printStackTrace(System.err);
89+
// Adds a PrometheusHttpServer to convert OpenTelemetry metrics to Prometheus format and
90+
// expose these via a HttpServer exporter to the SdkMeterProvider.
91+
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
92+
.registerMetricReader(
93+
PrometheusHttpServer.builder().setPort(prometheusPort).build())
94+
.build();
95+
96+
// Initialize OpenTelemetry SDK with MeterProvider configured with Prometheus metrics exporter
97+
OpenTelemetrySdk openTelemetrySdk =
98+
OpenTelemetrySdk.builder().setMeterProvider(sdkMeterProvider).build();
99+
100+
// Initialize gRPC OpenTelemetry.
101+
// Following client metrics are enabled by default :
102+
// 1. grpc.server.call.started
103+
// 2. grpc.server.call.sent_total_compressed_message_size
104+
// 3. grpc.server.call.rcvd_total_compressed_message_size
105+
// 4. grpc.server.call.duration
106+
GrpcOpenTelemetry grpcOpenTelmetry = GrpcOpenTelemetry.newBuilder()
107+
.sdk(openTelemetrySdk)
108+
.build();
109+
// Registers gRPC OpenTelemetry globally.
110+
grpcOpenTelmetry.registerGlobal();
111+
112+
final OpenTelemetryServer server = new OpenTelemetryServer();
113+
server.start(port);
114+
115+
Runtime.getRuntime().addShutdownHook(new Thread() {
116+
@Override
117+
public void run() {
118+
System.err.println("*** shutting down gRPC server since JVM is shutting down");
119+
try {
120+
server.stop();
121+
} catch (InterruptedException e) {
122+
e.printStackTrace(System.err);
123+
}
124+
// Shut down OpenTelemetry SDK.
125+
openTelemetrySdk.close();
126+
127+
System.err.println("*** server shut down");
122128
}
123-
// Shut down OpenTelemetry SDK.
124-
openTelemetrySdk.close();
129+
});
125130

126-
System.err.println("*** server shut down");
127-
}
128-
});
129-
130-
server.blockUntilShutdown();
131+
server.blockUntilShutdown();
132+
} catch(Throwable t) {
133+
System.err.println("crash");
134+
}
131135
}
132136

133137
static class GreeterImpl extends GreeterGrpc.GreeterImplBase {

0 commit comments

Comments
 (0)