github.com/aavshr/aws-sdk-go@v1.41.3/aws/csm/doc.go (about)

     1  // Package csm provides the Client Side Monitoring (CSM) client which enables
     2  // sending metrics via UDP connection to the CSM agent. This package provides
     3  // control options, and configuration for the CSM client. The client can be
     4  // controlled manually, or automatically via the SDK's Session configuration.
     5  //
     6  // Enabling CSM client via SDK's Session configuration
     7  //
     8  // The CSM client can be enabled automatically via SDK's Session configuration.
     9  // The SDK's session configuration enables the CSM client if the AWS_CSM_PORT
    10  // environment variable is set to a non-empty value.
    11  //
    12  // The configuration options for the CSM client via the SDK's session
    13  // configuration are:
    14  //
    15  //	* AWS_CSM_PORT=<port number>
    16  //	  The port number the CSM agent will receive metrics on.
    17  //
    18  //	* AWS_CSM_HOST=<hostname or ip>
    19  //	  The hostname, or IP address the CSM agent will receive metrics on.
    20  //	  Without port number.
    21  //
    22  // Manually enabling the CSM client
    23  //
    24  // The CSM client can be started, paused, and resumed manually. The Start
    25  // function will enable the CSM client to publish metrics to the CSM agent. It
    26  // is safe to call Start concurrently, but if Start is called additional times
    27  // with different ClientID or address it will panic.
    28  //
    29  //		r, err := csm.Start("clientID", ":31000")
    30  //		if err != nil {
    31  //			panic(fmt.Errorf("failed starting CSM:  %v", err))
    32  //		}
    33  //
    34  // When controlling the CSM client manually, you must also inject its request
    35  // handlers into the SDK's Session configuration for the SDK's API clients to
    36  // publish metrics.
    37  //
    38  //		sess, err := session.NewSession(&aws.Config{})
    39  //		if err != nil {
    40  //			panic(fmt.Errorf("failed loading session: %v", err))
    41  //		}
    42  //
    43  //		// Add CSM client's metric publishing request handlers to the SDK's
    44  //		// Session Configuration.
    45  //		r.InjectHandlers(&sess.Handlers)
    46  //
    47  // Controlling CSM client
    48  //
    49  // Once the CSM client has been enabled the Get function will return a Reporter
    50  // value that you can use to pause and resume the metrics published to the CSM
    51  // agent. If Get function is called before the reporter is enabled with the
    52  // Start function or via SDK's Session configuration nil will be returned.
    53  //
    54  // The Pause method can be called to stop the CSM client publishing metrics to
    55  // the CSM agent. The Continue method will resume metric publishing.
    56  //
    57  //		// Get the CSM client Reporter.
    58  //		r := csm.Get()
    59  //
    60  //		// Will pause monitoring
    61  //		r.Pause()
    62  //		resp, err = client.GetObject(&s3.GetObjectInput{
    63  //			Bucket: aws.String("bucket"),
    64  //			Key: aws.String("key"),
    65  //		})
    66  //
    67  //		// Resume monitoring
    68  //		r.Continue()
    69  package csm