Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-30318

identify or enable client side logging interface

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Minor
    • None
    • 5.0.0, 5.1.0, 5.5.0
    • ns_server
    • None

    Description

      In many user deployments, there may be a separation between the application development team and the database management team.  There are a few simple pieces of telemetry which we would like to gather from existing processes (cbcollect_info) but there is not currently a way for components that are not directly ns_server managed to feed in such telemetry.

      One interface that does exist for this is the client side error report.  That was originally added to capture issues in the UI code to a central place, so it is not necessarily at the right auth level or appropriate for the volume of requests, but it is a candidate.

      Requirements of this interface to be fairly future proof… 

      • Able to support at least 5000 persistent connections
      • Able to take a large number of connections in a short timeframe
      • Able to handle a high throughput of requests safely, meaning
        • Handle logging up to ~10KB records at a rate of 1000 requests per second and
        • Throttle itself rather than perturb/destablize the component if requests go beyond this level safely, meaning return an HTTP 503 or whatever is appropriate

      As an example of use case, SDKs INFO level log at startup with environmental configuration.  This is infrequent, but hugely valuable to understand the census and configuration.  Having this would help with mean time to resolution when investigating issues.

      An INFO level example from a current client:

      11:21:22.023 [main] INFO  c.c.client.core.CouchbaseCore - CouchbaseEnvironment: {sslEnabled=false, sslKeystoreFile='null', sslTruststoreFile='null', sslKeystorePassword=false, sslTruststorePassword=false, sslKeystore=null, sslTruststore=null, bootstrapHttpEnabled=true, bootstrapCarrierEnabled=true, bootstrapHttpDirectPort=8091, bootstrapHttpSslPort=18091, bootstrapCarrierDirectPort=11210, bootstrapCarrierSslPort=11207, ioPoolSize=8, computationPoolSize=8, responseBufferSize=16384, requestBufferSize=16384, kvServiceEndpoints=1, viewServiceEndpoints=12, queryServiceEndpoints=12, searchServiceEndpoints=12, configPollInterval=2500, configPollFloorInterval=50, ioPool=NioEventLoopGroup, kvIoPool=null, viewIoPool=null, searchIoPool=null, queryIoPool=null, coreScheduler=CoreScheduler, memcachedHashingStrategy=DefaultMemcachedHashingStrategy, eventBus=DefaultEventBus, packageNameAndVersion=couchbase-java-client/2.6.0-beta (git: 2.6.0-beta-1-g61df9ad, core: 1.6.0-beta), retryStrategy=BestEffort, maxRequestLifetime=75000, retryDelay=ExponentialDelay{growBy 1.0 MICROSECONDS, powers of 2; lower=100, upper=100000}, reconnectDelay=ExponentialDelay{growBy 1.0 MILLISECONDS, powers of 2; lower=32, upper=4096}, observeIntervalDelay=ExponentialDelay{growBy 1.0 MICROSECONDS, powers of 2; lower=10, upper=100000}, keepAliveInterval=30000, continuousKeepAliveEnabled=true, keepAliveErrorThreshold=4, keepAliveTimeout=2500, autoreleaseAfter=2000, bufferPoolingEnabled=true, tcpNodelayEnabled=true, mutationTokensEnabled=false, socketConnectTimeout=1000, callbacksOnIoPool=false, disconnectTimeout=25000, requestBufferWaitStrategy=com.couchbase.client.core.env.DefaultCoreEnvironment$3@42607a4f, certAuthEnabled=false, coreSendHook=null, forceSaslPlain=false, compressionMinRatio=0.83, compressionMinSize=32, queryTimeout=75000, viewTimeout=75000, searchTimeout=75000, analyticsTimeout=75000, kvTimeout=2500, connectTimeout=5000, dnsSrvEnabled=false}

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              ajit.yagaty Ajit Yagaty [X] (Inactive)
              ingenthr Matt Ingenthron
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty