Documentation

Overview

Package execlog provides goma execlog service implementation.

Index

Constants

View Source
const DefaultMaxReqMsgSize = 10 * 1024 * 1024

DefaultMaxReqMsgSize is max request message size for execlog service. execlog server may receives > 8MB. grpc's default is 4MB.

Variables

View Source
var (
	DefaultViews = []*view.View{
		{
			TagKeys: []tag.Key{
				osFamilyKey,
				gomaErrorKey,
				compilerProxyErrorKey,
				cacheHitKey,
				depscacheUsedKey,
				localRunKey,
				execExitStatusKey,
				execRequestRetryKey,
			},
			Measure:     requests,
			Aggregation: view.Sum(),
		},
		{
			TagKeys:     tagKeys,
			Measure:     handlerTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     pendingTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     includeProcessorWaitTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     includeProcessorRunTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     includePreprocessTotalFiles,
			Aggregation: view.Sum(),
		},
		{
			TagKeys:     tagKeys,
			Measure:     includeFileloadPendingTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     includeFileloadRunTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     rpcThrottleTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     rpcPendingTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     rpcWaitTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     fileResponseTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     localDelayTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     localPendingTime,
			Aggregation: defaultLatencyDistribution,
		},
		{
			TagKeys:     tagKeys,
			Measure:     localRunTime,
			Aggregation: defaultLatencyDistribution,
		},
	}
)

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a client to access execlog service via gRPC.

func NewClient

func NewClient(address string, opts ...grpc.DialOption) Client

NewClient creates new client to access execlog service serving on address.

func (Client) SaveLog

func (c Client) SaveLog(ctx context.Context, in *gomapb.SaveLogReq, opts ...grpc.CallOption) (*gomapb.SaveLogResp, error)

SaveLog saves requested execlog.

type Service

type Service struct {
	execlogpb.UnimplementedLogServiceServer
}

Service represents goma execlog service.

func (Service) SaveLog

SaveLog emits some metrics.

* go.chromium.org/goma/execlog/requests
    {os_family, ,goma_error, compiler_proxy_error,
     cache_hit, depscache_used, local_run,
     exec_exit_status, exec_request_retry}
* go.chromium.org/goma/execlog/handler_time

TODO: implement saving logic to GCS?