Class OrcaServiceImpl

  • All Implemented Interfaces:
    io.grpc.BindableService

    @ExperimentalApi("https://github.com/grpc/grpc-java/issues/9006")
    public final class OrcaServiceImpl
    extends java.lang.Object
    implements io.grpc.BindableService
    Implements a BindableService that generates Out-Of-Band server metrics. Register the returned service to the server, then a client can request for periodic load reports.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private OrcaServiceImpl​(long minInterval, java.util.concurrent.TimeUnit timeUnit, java.util.concurrent.ScheduledExecutorService timeService, io.grpc.services.MetricRecorder orcaMetrics)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      io.grpc.ServerServiceDefinition bindService()  
      static io.grpc.BindableService createService​(java.util.concurrent.ScheduledExecutorService timeService, io.grpc.services.MetricRecorder metricRecorder)  
      static io.grpc.BindableService createService​(java.util.concurrent.ScheduledExecutorService timeService, io.grpc.services.MetricRecorder metricsRecorder, long minInterval, java.util.concurrent.TimeUnit timeUnit)
      Constructs a service to report server metrics.
      private OrcaLoadReport generateMetricsReport()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • logger

        private static final java.util.logging.Logger logger
      • DEFAULT_MIN_REPORT_INTERVAL_NANOS

        public static final long DEFAULT_MIN_REPORT_INTERVAL_NANOS
        Empty or invalid (non-positive) minInterval config in will be treated to this default value.
      • minReportIntervalNanos

        private final long minReportIntervalNanos
      • timeService

        private final java.util.concurrent.ScheduledExecutorService timeService
      • clientCount

        final java.util.concurrent.atomic.AtomicInteger clientCount
      • metricRecorder

        private io.grpc.services.MetricRecorder metricRecorder
    • Constructor Detail

      • OrcaServiceImpl

        private OrcaServiceImpl​(long minInterval,
                                java.util.concurrent.TimeUnit timeUnit,
                                java.util.concurrent.ScheduledExecutorService timeService,
                                io.grpc.services.MetricRecorder orcaMetrics)
    • Method Detail

      • createService

        public static io.grpc.BindableService createService​(java.util.concurrent.ScheduledExecutorService timeService,
                                                            io.grpc.services.MetricRecorder metricsRecorder,
                                                            long minInterval,
                                                            java.util.concurrent.TimeUnit timeUnit)
        Constructs a service to report server metrics. Config the report interval lower bound, the executor to run the timer, and a MetricRecorder that contains metrics data.
        Parameters:
        minInterval - configures the minimum metrics reporting interval for the service. Bad configuration (non-positive) will be overridden to service default (30s). Minimum metrics reporting interval means, if the setting in the client's request is invalid (non-positive) or below this value, they will be treated as this value.
      • createService

        public static io.grpc.BindableService createService​(java.util.concurrent.ScheduledExecutorService timeService,
                                                            io.grpc.services.MetricRecorder metricRecorder)
      • bindService

        public io.grpc.ServerServiceDefinition bindService()
        Specified by:
        bindService in interface io.grpc.BindableService
      • generateMetricsReport

        private OrcaLoadReport generateMetricsReport()