| // Package csm provides Client Side Monitoring (CSM) which enables sending metrics |
| // via UDP connection. Using the Start function will enable the reporting of |
| // metrics on a given port. If Start is called, with different parameters, again, |
| // a panic will occur. |
| // |
| // Pause can be called to pause any metrics publishing on a given port. Sessions |
| // that have had their handlers modified via InjectHandlers may still be used. |
| // However, the handlers will act as a no-op meaning no metrics will be published. |
| // |
| // Example: |
| // r, err := csm.Start("clientID", ":31000") |
| // if err != nil { |
| // panic(fmt.Errorf("failed starting CSM: %v", err)) |
| // } |
| // |
| // sess, err := session.NewSession(&aws.Config{}) |
| // if err != nil { |
| // panic(fmt.Errorf("failed loading session: %v", err)) |
| // } |
| // |
| // r.InjectHandlers(&sess.Handlers) |
| // |
| // client := s3.New(sess) |
| // resp, err := client.GetObject(&s3.GetObjectInput{ |
| // Bucket: aws.String("bucket"), |
| // Key: aws.String("key"), |
| // }) |
| // |
| // // Will pause monitoring |
| // r.Pause() |
| // resp, err = client.GetObject(&s3.GetObjectInput{ |
| // Bucket: aws.String("bucket"), |
| // Key: aws.String("key"), |
| // }) |
| // |
| // // Resume monitoring |
| // r.Continue() |
| // |
| // Start returns a Reporter that is used to enable or disable monitoring. If |
| // access to the Reporter is required later, calling Get will return the Reporter |
| // singleton. |
| // |
| // Example: |
| // r := csm.Get() |
| // r.Continue() |
| package csm |