github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/catgo/cat-go/cat/cat_api.go (about)

     1  package cat
     2  
     3  import (
     4  	"time"
     5  
     6  	"github.com/artisanhe/tools/catgo/cat-go/message"
     7  )
     8  
     9  func NewTransaction(mtype, name string) message.Transactor {
    10  	if !IsEnabled() {
    11  		return &message.NullTransaction{}
    12  	}
    13  	return message.NewTransaction(mtype, name, manager.flush)
    14  }
    15  
    16  func NewCompletedTransactionWithDuration(mtype, name string, duration time.Duration) {
    17  	if !IsEnabled() {
    18  		return
    19  	}
    20  
    21  	var trans = NewTransaction(mtype, name)
    22  	trans.SetDuration(duration)
    23  	if duration > 0 && duration < 60*time.Millisecond {
    24  		trans.SetTime(time.Now().Add(-duration))
    25  	}
    26  	trans.SetStatus(message.CatSuccess)
    27  	trans.Complete()
    28  }
    29  
    30  func NewEvent(mtype, name string) message.Messager {
    31  	if !IsEnabled() {
    32  		return &message.NullMessage{}
    33  	}
    34  	return message.NewEvent(mtype, name, manager.flush)
    35  }
    36  
    37  func LogEvent(mtype, name string, args ...string) {
    38  	if !IsEnabled() {
    39  		return
    40  	}
    41  
    42  	var e = NewEvent(mtype, name)
    43  	if len(args) > 0 {
    44  		e.SetStatus(args[0])
    45  	}
    46  	if len(args) > 1 {
    47  		e.SetData(args[1])
    48  	}
    49  	e.Complete()
    50  }
    51  
    52  func LogError(err error, args ...string) {
    53  	if !IsEnabled() {
    54  		return
    55  	}
    56  
    57  	var category = "CAT_ERROR"
    58  
    59  	if len(args) > 0 {
    60  		category = args[0]
    61  	}
    62  
    63  	LogErrorWithCategory(err, category)
    64  }
    65  
    66  func LogErrorWithCategory(err error, category string) {
    67  	if !IsEnabled() {
    68  		return
    69  	}
    70  
    71  	var event = NewEvent("Error", category)
    72  	var buf = newStacktrace(2, err)
    73  	event.SetStatus(message.CatError)
    74  	event.SetData(buf.String())
    75  	event.Complete()
    76  }
    77  
    78  func LogMetricForCount(name string, args ...int) {
    79  	if !IsEnabled() {
    80  		return
    81  	}
    82  	if len(args) == 0 {
    83  		aggregator.metric.AddCount(name, 1)
    84  	} else {
    85  		aggregator.metric.AddCount(name, args[0])
    86  	}
    87  }
    88  
    89  func LogMetricForDuration(name string, duration time.Duration) {
    90  	if !IsEnabled() {
    91  		return
    92  	}
    93  	aggregator.metric.AddDuration(name, duration)
    94  }
    95  
    96  func NewMetricHelper(name string) MetricHelper {
    97  	if !IsEnabled() {
    98  		return &nullMetricHelper{}
    99  	}
   100  	return newMetricHelper(name)
   101  }