core/logging: change log.Error function (#5251)

* core/logging: change log.Error function

* use request id
This commit is contained in:
Caleb Doxsey 2024-09-05 15:42:46 -06:00 committed by GitHub
parent 97bf5edc54
commit dad954ae16
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
66 changed files with 163 additions and 166 deletions

View file

@ -71,7 +71,7 @@ func (a *Authenticate) OnConfigChange(ctx context.Context, cfg *config.Config) {
a.options.Store(cfg.Options) a.options.Store(cfg.Options)
if state, err := newAuthenticateStateFromConfig(cfg, a.cfg); err != nil { if state, err := newAuthenticateStateFromConfig(cfg, a.cfg); err != nil {
log.Error(ctx).Err(err).Msg("authenticate: failed to update state") log.Ctx(ctx).Error().Err(err).Msg("authenticate: failed to update state")
} else { } else {
a.state.Store(state) a.state.Store(state)
} }

View file

@ -234,7 +234,7 @@ func (a *Authenticate) signOutRedirect(w http.ResponseWriter, r *http.Request) e
if err := authenticator.SignOut(w, r, rawIDToken, authenticateSignedOutURL, signOutURL); err == nil { if err := authenticator.SignOut(w, r, rawIDToken, authenticateSignedOutURL, signOutURL); err == nil {
return nil return nil
} else if !errors.Is(err, oidc.ErrSignoutNotImplemented) { } else if !errors.Is(err, oidc.ErrSignoutNotImplemented) {
log.Error(r.Context()).Err(err).Msg("authenticate: failed to get sign out url for authenticator") log.Ctx(r.Context()).Error().Err(err).Msg("authenticate: failed to get sign out url for authenticator")
} }
// if the authenticator failed to sign out, and no sign out url is defined, just go to the signed out page // if the authenticator failed to sign out, and no sign out url is defined, just go to the signed out page

View file

@ -70,7 +70,7 @@ func (tracker *AccessTracker) Run(ctx context.Context) {
} }
runSubmit := func() { runSubmit := func() {
if dropped := atomic.SwapInt64(&tracker.droppedAccesses, 0); dropped > 0 { if dropped := atomic.SwapInt64(&tracker.droppedAccesses, 0); dropped > 0 {
log.Error(ctx). log.Ctx(ctx).Error().
Int64("dropped", dropped). Int64("dropped", dropped).
Msg("authorize: failed to track all session accesses") Msg("authorize: failed to track all session accesses")
} }
@ -84,7 +84,7 @@ func (tracker *AccessTracker) Run(ctx context.Context) {
return err == nil return err == nil
}) })
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("authorize: error updating session last access timestamp") log.Ctx(ctx).Error().Err(err).Msg("authorize: error updating session last access timestamp")
return return
} }
@ -93,7 +93,7 @@ func (tracker *AccessTracker) Run(ctx context.Context) {
return err == nil return err == nil
}) })
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("authorize: error updating service account last access timestamp") log.Ctx(ctx).Error().Err(err).Msg("authorize: error updating service account last access timestamp")
return return
} }

View file

@ -151,7 +151,7 @@ func (a *Authorize) OnConfigChange(ctx context.Context, cfg *config.Config) {
currentState := a.state.Load() currentState := a.state.Load()
a.currentOptions.Store(cfg.Options) a.currentOptions.Store(cfg.Options)
if state, err := newAuthorizeStateFromConfig(cfg, a.store, currentState.evaluator); err != nil { if state, err := newAuthorizeStateFromConfig(cfg, a.store, currentState.evaluator); err != nil {
log.Error(ctx).Err(err).Msg("authorize: error updating state") log.Ctx(ctx).Error().Err(err).Msg("authorize: error updating state")
} else { } else {
a.state.Store(state) a.state.Store(state)
} }

View file

@ -178,7 +178,7 @@ func (a *Authorize) deniedResponse(
var err error var err error
respBody, err = io.ReadAll(resp.Body) respBody, err = io.ReadAll(resp.Body)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("error executing error template") log.Ctx(ctx).Error().Err(err).Msg("error executing error template")
return nil, err return nil, err
} }
// convert go headers to envoy headers // convert go headers to envoy headers

View file

@ -183,7 +183,7 @@ func getOrCreatePolicyEvaluators(
evals, errs := errgrouputil.Build(ctx, builders...) evals, errs := errgrouputil.Build(ctx, builders...)
if len(errs) > 0 { if len(errs) > 0 {
for _, err := range errs { for _, err := range errs {
log.Error(ctx).Msg(err.Error()) log.Ctx(ctx).Error().Msg(err.Error())
} }
return nil, fmt.Errorf("authorize: error building policy evaluators") return nil, fmt.Errorf("authorize: error building policy evaluators")
} }

View file

@ -47,7 +47,7 @@ var (
headers, err := getGoogleCloudServerlessHeaders(string(serviceAccount), string(audience)) headers, err := getGoogleCloudServerlessHeaders(string(serviceAccount), string(audience))
if err != nil { if err != nil {
log.Error(context.Background()).Err(err).Msg("error retrieving google cloud serverless headers") log.Error().Err(err).Msg("error retrieving google cloud serverless headers")
return nil, fmt.Errorf("failed to get google cloud serverless headers: %w", err) return nil, fmt.Errorf("failed to get google cloud serverless headers: %w", err)
} }
var kvs [][2]*ast.Term var kvs [][2]*ast.Term

View file

@ -66,7 +66,7 @@ func (a *Authorize) Check(ctx context.Context, in *envoy_service_auth_v3.CheckRe
req, err := a.getEvaluatorRequestFromCheckRequest(ctx, in, sessionState) req, err := a.getEvaluatorRequestFromCheckRequest(ctx, in, sessionState)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Str("request-id", requestID).Msg("error building evaluator request") log.Ctx(ctx).Error().Err(err).Str("request-id", requestID).Msg("error building evaluator request")
return nil, err return nil, err
} }
@ -75,7 +75,7 @@ func (a *Authorize) Check(ctx context.Context, in *envoy_service_auth_v3.CheckRe
res, err := state.evaluator.Evaluate(ctx, req) res, err := state.evaluator.Evaluate(ctx, req)
a.stateLock.RUnlock() a.stateLock.RUnlock()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Str("request-id", requestID).Msg("error during OPA evaluation") log.Ctx(ctx).Error().Err(err).Str("request-id", requestID).Msg("error during OPA evaluation")
return nil, err return nil, err
} }
@ -86,7 +86,7 @@ func (a *Authorize) Check(ctx context.Context, in *envoy_service_auth_v3.CheckRe
resp, err := a.handleResult(ctx, in, req, res) resp, err := a.handleResult(ctx, in, req, res)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Str("request-id", requestID).Msg("grpc check ext_authz_error") log.Ctx(ctx).Error().Err(err).Str("request-id", requestID).Msg("grpc check ext_authz_error")
} }
a.logAuthorizeCheck(ctx, in, resp, res, s, u) a.logAuthorizeCheck(ctx, in, resp, res, s, u)
return resp, err return resp, err
@ -195,7 +195,7 @@ func getClientCertificateInfo(
chain, err := url.QueryUnescape(escapedChain) chain, err := url.QueryUnescape(escapedChain)
if err != nil { if err != nil {
log.Error(ctx).Str("chain", escapedChain).Err(err). log.Ctx(ctx).Error().Str("chain", escapedChain).Err(err).
Msg(`received unexpected client certificate "chain" value`) Msg(`received unexpected client certificate "chain" value`)
return c return c
} }
@ -203,7 +203,7 @@ func getClientCertificateInfo(
// Split the chain into the leaf and any intermediate certificates. // Split the chain into the leaf and any intermediate certificates.
p, rest := pem.Decode([]byte(chain)) p, rest := pem.Decode([]byte(chain))
if p == nil { if p == nil {
log.Error(ctx).Str("chain", escapedChain). log.Ctx(ctx).Error().Str("chain", escapedChain).
Msg(`received unexpected client certificate "chain" value (no PEM block found)`) Msg(`received unexpected client certificate "chain" value (no PEM block found)`)
return c return c
} }

View file

@ -64,7 +64,7 @@ func (s *Store) write(rawPath string, value any) {
return s.writeTxn(txn, rawPath, value) return s.writeTxn(txn, rawPath, value)
}) })
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("opa-store: error writing data") log.Ctx(ctx).Error().Err(err).Msg("opa-store: error writing data")
return return
} }
} }
@ -125,7 +125,7 @@ func (s *Store) GetDataBrokerRecordOption() func(*rego.Rego) {
res, err := storage.GetQuerier(ctx).Query(ctx, req) res, err := storage.GetQuerier(ctx).Query(ctx, req)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("authorize/store: error retrieving record") log.Ctx(ctx).Error().Err(err).Msg("authorize/store: error retrieving record")
return ast.NullTerm(), nil return ast.NullTerm(), nil
} }
@ -149,7 +149,7 @@ func (s *Store) GetDataBrokerRecordOption() func(*rego.Rego) {
regoValue, err := ast.InterfaceToValue(obj) regoValue, err := ast.InterfaceToValue(obj)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("authorize/store: error converting object to rego") log.Ctx(ctx).Error().Err(err).Msg("authorize/store: error converting object to rego")
return ast.NullTerm(), nil return ast.NullTerm(), nil
} }

View file

@ -66,7 +66,7 @@ func (a *Authorize) logAuthorizeCheck(
} }
sealed, err := enc.Encrypt(record) sealed, err := enc.Encrypt(record)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("authorize: error encrypting audit record") log.Ctx(ctx).Error().Err(err).Msg("authorize: error encrypting audit record")
return return
} }
log.Info(ctx). log.Info(ctx).

View file

@ -164,7 +164,7 @@ func (src *FileOrEnvironmentSource) check(ctx context.Context) {
cfg.Options = options cfg.Options = options
metrics.SetConfigInfo(ctx, cfg.Options.Services, "local", cfg.Checksum(), true) metrics.SetConfigInfo(ctx, cfg.Options.Services, "local", cfg.Checksum(), true)
} else { } else {
log.Error(ctx).Err(err).Msg("config: error updating config") log.Ctx(ctx).Error().Err(err).Msg("config: error updating config")
metrics.SetConfigInfo(ctx, cfg.Options.Services, "local", cfg.Checksum(), false) metrics.SetConfigInfo(ctx, cfg.Options.Services, "local", cfg.Checksum(), false)
} }
src.config = cfg src.config = cfg

View file

@ -249,7 +249,7 @@ func (b *Builder) buildInternalTransportSocket(
} }
bs, err := getCombinedCertificateAuthority(cfg) bs, err := getCombinedCertificateAuthority(cfg)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("unable to enable certificate verification because no root CAs were found") log.Ctx(ctx).Error().Err(err).Msg("unable to enable certificate verification because no root CAs were found")
} else { } else {
validationContext.TrustedCa = b.filemgr.BytesDataSource("ca.pem", bs) validationContext.TrustedCa = b.filemgr.BytesDataSource("ca.pem", bs)
} }
@ -343,13 +343,13 @@ func (b *Builder) buildPolicyValidationContext(
} else if policy.TLSCustomCA != "" { } else if policy.TLSCustomCA != "" {
bs, err := base64.StdEncoding.DecodeString(policy.TLSCustomCA) bs, err := base64.StdEncoding.DecodeString(policy.TLSCustomCA)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("invalid custom CA certificate") log.Ctx(ctx).Error().Err(err).Msg("invalid custom CA certificate")
} }
validationContext.TrustedCa = b.filemgr.BytesDataSource("custom-ca.pem", bs) validationContext.TrustedCa = b.filemgr.BytesDataSource("custom-ca.pem", bs)
} else { } else {
bs, err := getCombinedCertificateAuthority(cfg) bs, err := getCombinedCertificateAuthority(cfg)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("unable to enable certificate verification because no root CAs were found") log.Ctx(ctx).Error().Err(err).Msg("unable to enable certificate verification because no root CAs were found")
} else { } else {
validationContext.TrustedCa = b.filemgr.BytesDataSource("ca.pem", bs) validationContext.TrustedCa = b.filemgr.BytesDataSource("ca.pem", bs)
} }

View file

@ -175,7 +175,7 @@ func (b *Builder) envoyTLSCertificateFromGoTLSCertificate(
}, },
)) ))
} else { } else {
log.Error(ctx).Err(err).Msg("failed to marshal private key for tls config") log.Ctx(ctx).Error().Err(err).Msg("failed to marshal private key for tls config")
} }
for _, scts := range cert.SignedCertificateTimestamps { for _, scts := range cert.SignedCertificateTimestamps {
envoyCert.SignedCertificateTimestamp = append(envoyCert.SignedCertificateTimestamp, envoyCert.SignedCertificateTimestamp = append(envoyCert.SignedCertificateTimestamp,
@ -207,7 +207,7 @@ func getRootCertificateAuthority() (string, error) {
} }
} }
if rootCABundle.value == "" { if rootCABundle.value == "" {
log.Error(context.TODO()).Strs("known-locations", knownRootLocations). log.Error().Strs("known-locations", knownRootLocations).
Msgf("no root certificates were found in any of the known locations") Msgf("no root certificates were found in any of the known locations")
} else { } else {
log.Info(context.TODO()).Msgf("using %s as the system root certificate authority bundle", rootCABundle.value) log.Info(context.TODO()).Msgf("using %s as the system root certificate authority bundle", rootCABundle.value)

View file

@ -2,7 +2,6 @@
package filemgr package filemgr
import ( import (
"context"
"os" "os"
"path/filepath" "path/filepath"
"sync" "sync"
@ -38,7 +37,7 @@ func (mgr *Manager) init() {
func (mgr *Manager) BytesDataSource(fileName string, data []byte) *envoy_config_core_v3.DataSource { func (mgr *Manager) BytesDataSource(fileName string, data []byte) *envoy_config_core_v3.DataSource {
mgr.init() mgr.init()
if mgr.initErr != nil { if mgr.initErr != nil {
log.Error(context.Background()).Err(mgr.initErr).Msg("filemgr: error creating cache directory, falling back to inline bytes") log.Error().Err(mgr.initErr).Msg("filemgr: error creating cache directory, falling back to inline bytes")
return inlineBytes(data) return inlineBytes(data)
} }
@ -48,11 +47,11 @@ func (mgr *Manager) BytesDataSource(fileName string, data []byte) *envoy_config_
if _, err := os.Stat(filePath); os.IsNotExist(err) { if _, err := os.Stat(filePath); os.IsNotExist(err) {
err = os.WriteFile(filePath, data, 0o600) err = os.WriteFile(filePath, data, 0o600)
if err != nil { if err != nil {
log.Error(context.TODO()).Err(err).Msg("filemgr: error writing cache file, falling back to inline bytes") log.Error().Err(err).Msg("filemgr: error writing cache file, falling back to inline bytes")
return inlineBytes(data) return inlineBytes(data)
} }
} else if err != nil { } else if err != nil {
log.Error(context.TODO()).Err(err).Msg("filemgr: error reading cache file, falling back to inline bytes") log.Error().Err(err).Msg("filemgr: error reading cache file, falling back to inline bytes")
return inlineBytes(data) return inlineBytes(data)
} }
@ -75,7 +74,7 @@ func (mgr *Manager) ClearCache() {
return nil return nil
}) })
if err != nil { if err != nil {
log.Error(context.Background()).Err(err).Msg("failed to clear envoy file cache") log.Error().Err(err).Msg("failed to clear envoy file cache")
} }
} }

View file

@ -600,7 +600,7 @@ func (b *Builder) buildDownstreamValidationContext(
if crl := cfg.Options.DownstreamMTLS.CRL; crl != "" { if crl := cfg.Options.DownstreamMTLS.CRL; crl != "" {
bs, err := base64.StdEncoding.DecodeString(crl) bs, err := base64.StdEncoding.DecodeString(crl)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("invalid client CRL") log.Ctx(ctx).Error().Err(err).Msg("invalid client CRL")
} else { } else {
vc.Crl = b.filemgr.BytesDataSource("client-crl.pem", bs) vc.Crl = b.filemgr.BytesDataSource("client-crl.pem", bs)
} }
@ -628,7 +628,7 @@ func clientCABundle(ctx context.Context, cfg *config.Config) []byte {
} }
ca, err := base64.StdEncoding.DecodeString(p.TLSDownstreamClientCA) ca, err := base64.StdEncoding.DecodeString(p.TLSDownstreamClientCA)
if err != nil { if err != nil {
log.Error(ctx).Stringer("policy", p).Err(err).Msg("invalid client CA") log.Ctx(ctx).Error().Stringer("policy", p).Err(err).Msg("invalid client CA")
continue continue
} }
addCAToBundle(&bundle, ca) addCAToBundle(&bundle, ca)

View file

@ -29,7 +29,7 @@ func NewHTTPTransport(src Source) *http.Transport {
} }
lock.Unlock() lock.Unlock()
} else { } else {
log.Error(ctx).Err(err).Msg("config: error getting cert pool") log.Ctx(ctx).Error().Err(err).Msg("config: error getting cert pool")
} }
} }
src.OnConfigChange(context.Background(), update) src.OnConfigChange(context.Background(), update)
@ -80,7 +80,7 @@ func NewPolicyHTTPTransport(options *Options, policy *Policy, disableHTTP2 bool)
tlsClientConfig.MinVersion = tls.VersionTLS12 tlsClientConfig.MinVersion = tls.VersionTLS12
isCustomClientConfig = true isCustomClientConfig = true
} else { } else {
log.Error(context.TODO()).Err(err).Msg("config: error getting ca cert pool") log.Error().Err(err).Msg("config: error getting ca cert pool")
} }
} }
@ -91,7 +91,7 @@ func NewPolicyHTTPTransport(options *Options, policy *Policy, disableHTTP2 bool)
tlsClientConfig.MinVersion = tls.VersionTLS12 tlsClientConfig.MinVersion = tls.VersionTLS12
isCustomClientConfig = true isCustomClientConfig = true
} else { } else {
log.Error(context.TODO()).Err(err).Msg("config: error getting custom ca cert pool") log.Error().Err(err).Msg("config: error getting custom ca cert pool")
} }
} }

View file

@ -51,7 +51,7 @@ func (src *LayeredSource) rebuild(ctx context.Context, next *Config) *Config {
cfg := next.Clone() cfg := next.Clone()
if err := src.builder(cfg); err != nil { if err := src.builder(cfg); err != nil {
log.Error(ctx).Err(err).Msg("building config") log.Ctx(ctx).Error().Err(err).Msg("building config")
cfg = next cfg = next
} }
src.cfg = cfg src.cfg = cfg

View file

@ -78,7 +78,7 @@ func (mgr *MetricsManager) updateInfo(ctx context.Context, cfg *Config) {
hostname, err := os.Hostname() hostname, err := os.Hostname()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("telemetry/metrics: failed to get OS hostname") log.Ctx(ctx).Error().Err(err).Msg("telemetry/metrics: failed to get OS hostname")
hostname = "__unknown__" hostname = "__unknown__"
} }
@ -108,7 +108,7 @@ func (mgr *MetricsManager) updateServer(ctx context.Context, cfg *Config) {
}) })
handler, err := metrics.PrometheusHandler(toInternalEndpoints(mgr.endpoints), mgr.installationID, defaultMetricsTimeout) handler, err := metrics.PrometheusHandler(toInternalEndpoints(mgr.endpoints), mgr.installationID, defaultMetricsTimeout)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("metrics: failed to create prometheus handler") log.Ctx(ctx).Error().Err(err).Msg("metrics: failed to create prometheus handler")
return return
} }

View file

@ -206,7 +206,7 @@ func mtlsEnforcementFromProtoEnum(
case config.MtlsEnforcementMode_REJECT_CONNECTION: case config.MtlsEnforcementMode_REJECT_CONNECTION:
return MTLSEnforcementRejectConnection return MTLSEnforcementRejectConnection
default: default:
log.Error(ctx).Msgf("unknown mTLS enforcement mode %s", mode) log.Ctx(ctx).Error().Msgf("unknown mTLS enforcement mode %s", mode)
return "" return ""
} }
} }

View file

@ -413,10 +413,10 @@ func checkConfigKeysErrors(configFile string, o *Options, unused []string) error
var evt *zerolog.Event var evt *zerolog.Event
switch check.KeyAction { switch check.KeyAction {
case KeyActionError: case KeyActionError:
evt = log.Error(ctx) evt = log.Ctx(ctx).Error()
err = errInvalidConfigKeys err = errInvalidConfigKeys
default: default:
evt = log.Error(ctx) evt = log.Ctx(ctx).Error()
} }
evt.Str("config_file", configFile).Str("key", check.Key) evt.Str("config_file", configFile).Str("key", check.Key)
if check.DocsURL != "" { if check.DocsURL != "" {
@ -428,7 +428,7 @@ func checkConfigKeysErrors(configFile string, o *Options, unused []string) error
// check for unknown runtime flags // check for unknown runtime flags
for flag := range o.RuntimeFlags { for flag := range o.RuntimeFlags {
if _, ok := defaultRuntimeFlags[flag]; !ok { if _, ok := defaultRuntimeFlags[flag]; !ok {
log.Error(ctx).Str("config_file", configFile).Str("flag", string(flag)).Msg("unknown runtime flag") log.Ctx(ctx).Error().Str("config_file", configFile).Str("flag", string(flag)).Msg("unknown runtime flag")
} }
} }
@ -825,7 +825,7 @@ func (o *Options) UseStatelessAuthenticateFlow() bool {
} else if flow == "stateful" { } else if flow == "stateful" {
return false return false
} }
log.Error(context.Background()). log.Error().
Msgf("ignoring unknown DEBUG_FORCE_AUTHENTICATE_FLOW setting %q", flow) Msgf("ignoring unknown DEBUG_FORCE_AUTHENTICATE_FLOW setting %q", flow)
} }
u, err := o.GetInternalAuthenticateURL() u, err := o.GetInternalAuthenticateURL()
@ -1147,13 +1147,13 @@ func (o *Options) GetX509Certificates() []*x509.Certificate {
if o.CertFile != "" { if o.CertFile != "" {
cert, err := cryptutil.ParsePEMCertificateFromFile(o.CertFile) cert, err := cryptutil.ParsePEMCertificateFromFile(o.CertFile)
if err != nil { if err != nil {
log.Error(context.Background()).Err(err).Str("file", o.CertFile).Msg("invalid cert_file") log.Error().Err(err).Str("file", o.CertFile).Msg("invalid cert_file")
} else { } else {
certs = append(certs, cert) certs = append(certs, cert)
} }
} else if o.Cert != "" { } else if o.Cert != "" {
if cert, err := cryptutil.ParsePEMCertificateFromBase64(o.Cert); err != nil { if cert, err := cryptutil.ParsePEMCertificateFromBase64(o.Cert); err != nil {
log.Error(context.Background()).Err(err).Msg("invalid cert") log.Error().Err(err).Msg("invalid cert")
} else { } else {
certs = append(certs, cert) certs = append(certs, cert)
} }
@ -1162,7 +1162,7 @@ func (o *Options) GetX509Certificates() []*x509.Certificate {
for _, c := range o.CertificateData { for _, c := range o.CertificateData {
cert, err := cryptutil.ParsePEMCertificate(c.GetCertBytes()) cert, err := cryptutil.ParsePEMCertificate(c.GetCertBytes())
if err != nil { if err != nil {
log.Error(context.Background()).Err(err).Msg("invalid certificate") log.Error().Err(err).Msg("invalid certificate")
} else { } else {
certs = append(certs, cert) certs = append(certs, cert)
} }
@ -1171,7 +1171,7 @@ func (o *Options) GetX509Certificates() []*x509.Certificate {
for _, c := range o.CertificateFiles { for _, c := range o.CertificateFiles {
cert, err := cryptutil.ParsePEMCertificateFromFile(c.CertFile) cert, err := cryptutil.ParsePEMCertificateFromFile(c.CertFile)
if err != nil { if err != nil {
log.Error(context.Background()).Err(err).Msg("invalid certificate_file") log.Error().Err(err).Msg("invalid certificate_file")
} else { } else {
certs = append(certs, cert) certs = append(certs, cert)
} }
@ -1481,12 +1481,12 @@ func (o *Options) applyExternalCerts(ctx context.Context, certsIndex *cryptutil.
for _, c := range certs { for _, c := range certs {
cert, err := cryptutil.ParsePEMCertificate(c.GetCertBytes()) cert, err := cryptutil.ParsePEMCertificate(c.GetCertBytes())
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("parsing cert from databroker: skipped") log.Ctx(ctx).Error().Err(err).Msg("parsing cert from databroker: skipped")
continue continue
} }
if overlaps, name := certsIndex.OverlapsWithExistingCertificate(cert); overlaps { if overlaps, name := certsIndex.OverlapsWithExistingCertificate(cert); overlaps {
log.Error(ctx).Err(err).Str("domain", name).Msg("overlaps with local certs: skipped") log.Ctx(ctx).Error().Err(err).Str("domain", name).Msg("overlaps with local certs: skipped")
continue continue
} }

View file

@ -90,7 +90,7 @@ func (mgr *TraceManager) OnConfigChange(ctx context.Context, cfg *Config) {
traceOpts, err := NewTracingOptions(cfg.Options) traceOpts, err := NewTracingOptions(cfg.Options)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("trace: failed to build tracing options") log.Ctx(ctx).Error().Err(err).Msg("trace: failed to build tracing options")
return return
} }
@ -113,13 +113,13 @@ func (mgr *TraceManager) OnConfigChange(ctx context.Context, cfg *Config) {
mgr.provider, err = trace.GetProvider(traceOpts) mgr.provider, err = trace.GetProvider(traceOpts)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("trace: failed to register exporter") log.Ctx(ctx).Error().Err(err).Msg("trace: failed to register exporter")
return return
} }
err = mgr.provider.Register(traceOpts) err = mgr.provider.Register(traceOpts)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("trace: failed to register exporter") log.Ctx(ctx).Error().Err(err).Msg("trace: failed to register exporter")
return return
} }
} }

View file

@ -118,7 +118,7 @@ func New(cfg *config.Config, eventsMgr *events.Manager) (*DataBroker, error) {
func (c *DataBroker) OnConfigChange(ctx context.Context, cfg *config.Config) { func (c *DataBroker) OnConfigChange(ctx context.Context, cfg *config.Config) {
err := c.update(ctx, cfg) err := c.update(ctx, cfg)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("databroker: error updating configuration") log.Ctx(ctx).Error().Err(err).Msg("databroker: error updating configuration")
} }
c.dataBrokerServer.OnConfigChange(ctx, cfg) c.dataBrokerServer.OnConfigChange(ctx, cfg)
@ -174,7 +174,7 @@ func (c *DataBroker) update(ctx context.Context, cfg *config.Config) error {
if cfg.Options.SupportsUserRefresh() { if cfg.Options.SupportsUserRefresh() {
authenticator, err := identity.NewAuthenticator(oauthOptions) authenticator, err := identity.NewAuthenticator(oauthOptions)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("databroker: failed to create authenticator") log.Ctx(ctx).Error().Err(err).Msg("databroker: failed to create authenticator")
} else { } else {
options = append(options, manager.WithAuthenticator(authenticator)) options = append(options, manager.WithAuthenticator(authenticator))
legacyOptions = append(legacyOptions, legacymanager.WithAuthenticator(authenticator)) legacyOptions = append(legacyOptions, legacymanager.WithAuthenticator(authenticator))

View file

@ -42,7 +42,7 @@ func newDataBrokerServer(cfg *config.Config) (*dataBrokerServer, error) {
func (srv *dataBrokerServer) OnConfigChange(ctx context.Context, cfg *config.Config) { func (srv *dataBrokerServer) OnConfigChange(ctx context.Context, cfg *config.Config) {
opts, err := srv.getOptions(cfg) opts, err := srv.getOptions(cfg)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("databroker: error updating config changes") log.Ctx(ctx).Error().Err(err).Msg("databroker: error updating config changes")
return return
} }

View file

@ -232,7 +232,7 @@ func (s *Stateless) PersistSession(
} }
err = storeIdentityProfile(w, s.options.NewCookie(), s.cookieCipher, profile) err = storeIdentityProfile(w, s.options.NewCookie(), s.cookieCipher, profile)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("failed to store identity profile") log.Ctx(ctx).Error().Err(err).Msg("failed to store identity profile")
} }
return nil return nil
} }
@ -293,7 +293,7 @@ func (s *Stateless) logAuthenticateEvent(r *http.Request, profile *identitypb.Pr
ctx := r.Context() ctx := r.Context()
pub, params, err := hpke.DecryptURLValues(s.hpkePrivateKey, r.Form) pub, params, err := hpke.DecryptURLValues(s.hpkePrivateKey, r.Form)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("log authenticate event: failed to decrypt request params") log.Ctx(ctx).Error().Err(err).Msg("log authenticate event: failed to decrypt request params")
} }
evt := events.AuthEvent{ evt := events.AuthEvent{

View file

@ -113,7 +113,7 @@ func newManager(ctx context.Context,
mgr.src.OnConfigChange(ctx, func(ctx context.Context, cfg *config.Config) { mgr.src.OnConfigChange(ctx, func(ctx context.Context, cfg *config.Config) {
err := mgr.update(ctx, cfg) err := mgr.update(ctx, cfg)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("autocert: error updating config") log.Ctx(ctx).Error().Err(err).Msg("autocert: error updating config")
return return
} }
@ -131,7 +131,7 @@ func newManager(ctx context.Context,
case <-ticker.C: case <-ticker.C:
err := mgr.renewConfigCerts(ctx) err := mgr.renewConfigCerts(ctx)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("autocert: error updating config") log.Ctx(ctx).Error().Err(err).Msg("autocert: error updating config")
return return
} }
} }
@ -255,7 +255,7 @@ func (mgr *Manager) obtainCert(ctx context.Context, domain string, cm *certmagic
log.Info(ctx).Str("domain", domain).Msg("obtaining certificate") log.Info(ctx).Str("domain", domain).Msg("obtaining certificate")
err = cm.ObtainCertSync(ctx, domain) err = cm.ObtainCertSync(ctx, domain)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("autocert failed to obtain client certificate") log.Ctx(ctx).Error().Err(err).Msg("autocert failed to obtain client certificate")
return certmagic.Certificate{}, errObtainCertFailed return certmagic.Certificate{}, errObtainCertFailed
} }
metrics.RecordAutocertRenewal() metrics.RecordAutocertRenewal()
@ -275,7 +275,7 @@ func (mgr *Manager) renewCert(ctx context.Context, domain string, cert certmagic
if expired { if expired {
return certmagic.Certificate{}, errRenewCertFailed return certmagic.Certificate{}, errRenewCertFailed
} }
log.Error(ctx).Err(err).Msg("renew client certificated failed, use existing cert") log.Ctx(ctx).Error().Err(err).Msg("renew client certificated failed, use existing cert")
} }
return cm.CacheManagedCertificate(ctx, domain) return cm.CacheManagedCertificate(ctx, domain)
} }
@ -297,7 +297,7 @@ func (mgr *Manager) updateAutocert(ctx context.Context, cfg *config.Config) erro
cert, err = mgr.renewCert(ctx, domain, cert, cm) cert, err = mgr.renewCert(ctx, domain, cert, cm)
} }
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("autocert: failed to obtain client certificate") log.Ctx(ctx).Error().Err(err).Msg("autocert: failed to obtain client certificate")
continue continue
} }
@ -340,7 +340,7 @@ func (mgr *Manager) updateServer(ctx context.Context, cfg *config.Config) {
log.Info(ctx).Str("addr", hsrv.Addr).Msg("starting http redirect server") log.Info(ctx).Str("addr", hsrv.Addr).Msg("starting http redirect server")
err := hsrv.ListenAndServe() err := hsrv.ListenAndServe()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("failed to run http redirect server") log.Ctx(ctx).Error().Err(err).Msg("failed to run http redirect server")
} }
}() }()
mgr.srv = hsrv mgr.srv = hsrv
@ -369,7 +369,7 @@ func (mgr *Manager) updateACMETLSALPNServer(ctx context.Context, cfg *config.Con
addr := net.JoinHostPort("127.0.0.1", cfg.ACMETLSALPNPort) addr := net.JoinHostPort("127.0.0.1", cfg.ACMETLSALPNPort)
ln, err := net.Listen("tcp", addr) ln, err := net.Listen("tcp", addr)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("failed to run acme tls alpn server") log.Ctx(ctx).Error().Err(err).Msg("failed to run acme tls alpn server")
return return
} }
mgr.acmeTLSALPNListener = ln mgr.acmeTLSALPNListener = ln

View file

@ -98,10 +98,10 @@ func withGRPCBackoff(ctx context.Context, f func() error) {
case status.Code(err) == codes.Unavailable, case status.Code(err) == codes.Unavailable,
status.Code(err) == codes.ResourceExhausted, status.Code(err) == codes.ResourceExhausted,
status.Code(err) == codes.DeadlineExceeded: status.Code(err) == codes.DeadlineExceeded:
log.Error(ctx).Err(err).Msg("controlplane: error storing configuration event, retrying") log.Ctx(ctx).Error().Err(err).Msg("controlplane: error storing configuration event, retrying")
// retry // retry
default: default:
log.Error(ctx).Err(err).Msg("controlplane: error storing configuration event") log.Ctx(ctx).Error().Err(err).Msg("controlplane: error storing configuration event")
return return
} }

View file

@ -21,7 +21,7 @@ func (srv *Server) StreamAccessLogs(stream envoy_service_accesslog_v3.AccessLogS
for { for {
msg, err := stream.Recv() msg, err := stream.Recv()
if err != nil { if err != nil {
log.Error(stream.Context()).Err(err).Msg("access log stream error, disconnecting") log.Ctx(stream.Context()).Error().Err(err).Msg("access log stream error, disconnecting")
return err return err
} }

View file

@ -215,7 +215,7 @@ func (srv *Server) Run(ctx context.Context) error {
case cfg := <-srv.updateConfig: case cfg := <-srv.updateConfig:
err := srv.update(ctx, cfg) err := srv.update(ctx, cfg)
if err != nil { if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Msg("controlplane: error updating server with new config") Msg("controlplane: error updating server with new config")
} }
} }

View file

@ -1,7 +1,6 @@
package databroker package databroker
import ( import (
"context"
"crypto/tls" "crypto/tls"
"time" "time"
@ -76,7 +75,7 @@ func WithGetSharedKey(getSharedKey func() ([]byte, error)) ServerOption {
return func(cfg *serverConfig) { return func(cfg *serverConfig) {
sharedKey, err := getSharedKey() sharedKey, err := getSharedKey()
if err != nil { if err != nil {
log.Error(context.TODO()).Err(err).Msgf("shared key is required and must be %d bytes long", cryptutil.DefaultKeySize) log.Error().Err(err).Msgf("shared key is required and must be %d bytes long", cryptutil.DefaultKeySize)
return return
} }
cfg.secret = sharedKey cfg.secret = sharedKey

View file

@ -102,7 +102,7 @@ func (src *ConfigSource) rebuild(ctx context.Context, firstTime firstTime) {
err := src.buildNewConfigLocked(ctx, cfg) err := src.buildNewConfigLocked(ctx, cfg)
if err != nil { if err != nil {
health.ReportError(health.BuildDatabrokerConfig, err) health.ReportError(health.BuildDatabrokerConfig, err)
log.Error(ctx).Err(err).Msg("databroker: failed to build new config") log.Ctx(ctx).Error().Err(err).Msg("databroker: failed to build new config")
return return
} }
health.ReportOK(health.BuildDatabrokerConfig) health.ReportOK(health.BuildDatabrokerConfig)
@ -147,7 +147,7 @@ func (src *ConfigSource) buildNewConfigLocked(ctx context.Context, cfg *config.C
policies, errs = errgrouputil.Build(ctx, policyBuilders...) policies, errs = errgrouputil.Build(ctx, policyBuilders...)
if len(errs) > 0 { if len(errs) > 0 {
for _, err := range errs { for _, err := range errs {
log.Error(ctx).Msg(err.Error()) log.Ctx(ctx).Error().Msg(err.Error())
} }
return fmt.Errorf("error building policies") return fmt.Errorf("error building policies")
} }
@ -262,7 +262,7 @@ func (src *ConfigSource) runUpdater(cfg *config.Config) {
cc, err := src.outboundGRPCConnection.Get(ctx, connectionOptions) cc, err := src.outboundGRPCConnection.Get(ctx, connectionOptions)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("databroker: failed to create gRPC connection to data broker") log.Ctx(ctx).Error().Err(err).Msg("databroker: failed to create gRPC connection to data broker")
return return
} }
@ -312,7 +312,7 @@ func (s *syncerHandler) UpdateRecords(ctx context.Context, _ uint64, records []*
var cfgpb configpb.Config var cfgpb configpb.Config
err := record.GetData().UnmarshalTo(&cfgpb) err := record.GetData().UnmarshalTo(&cfgpb)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("databroker: error decoding config") log.Ctx(ctx).Error().Err(err).Msg("databroker: error decoding config")
delete(s.src.dbConfigs, record.GetId()) delete(s.src.dbConfigs, record.GetId())
continue continue
} }

View file

@ -57,7 +57,7 @@ func (srv *Server) UpdateConfig(options ...ServerOption) {
if srv.backend != nil { if srv.backend != nil {
err := srv.backend.Close() err := srv.backend.Close()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("databroker: error closing backend") log.Ctx(ctx).Error().Err(err).Msg("databroker: error closing backend")
} }
srv.backend = nil srv.backend = nil
} }
@ -65,7 +65,7 @@ func (srv *Server) UpdateConfig(options ...ServerOption) {
if srv.registry != nil { if srv.registry != nil {
err := srv.registry.Close() err := srv.registry.Close()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("databroker: error closing registry") log.Ctx(ctx).Error().Err(err).Msg("databroker: error closing registry")
} }
srv.registry = nil srv.registry = nil
} }

View file

@ -1,7 +1,6 @@
package events package events
import ( import (
"context"
"sync" "sync"
"github.com/google/uuid" "github.com/google/uuid"
@ -29,7 +28,7 @@ func (mgr *Manager) Dispatch(evt Event) {
mgr.mu.RUnlock() mgr.mu.RUnlock()
if dropped { if dropped {
log.Error(context.Background()). log.Error().
Interface("event", evt). Interface("event", evt).
Msg("controlplane: dropping event due to full channel") Msg("controlplane: dropping event due to full channel")
} }

View file

@ -56,7 +56,7 @@ func (watcher *Watcher) Watch(ctx context.Context, filePaths []string) {
if watcher.pollingWatcher != nil { if watcher.pollingWatcher != nil {
err := watcher.pollingWatcher.Add(filePath) err := watcher.pollingWatcher.Add(filePath)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Str("file", filePath).Msg("fileutil/watcher: failed to add file to polling-based file watcher") log.Ctx(ctx).Error().Err(err).Str("file", filePath).Msg("fileutil/watcher: failed to add file to polling-based file watcher")
} }
} }
} }
@ -67,7 +67,7 @@ func (watcher *Watcher) Watch(ctx context.Context, filePaths []string) {
if watcher.pollingWatcher != nil { if watcher.pollingWatcher != nil {
err := watcher.pollingWatcher.Remove(filePath) err := watcher.pollingWatcher.Remove(filePath)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Str("file", filePath).Msg("fileutil/watcher: failed to remove file from polling-based file watcher") log.Ctx(ctx).Error().Err(err).Str("file", filePath).Msg("fileutil/watcher: failed to remove file from polling-based file watcher")
} }
} }
} }
@ -88,7 +88,7 @@ func (watcher *Watcher) initLocked(ctx context.Context) {
// log errors // log errors
go func() { go func() {
for err := range errors { for err := range errors {
log.Error(ctx).Err(err).Msg("fileutil/watcher: file notification error") log.Ctx(ctx).Error().Err(err).Msg("fileutil/watcher: file notification error")
} }
}() }()

View file

@ -74,7 +74,7 @@ func (e *HTTPError) ErrorResponse(ctx context.Context, w http.ResponseWriter, r
w.Header().Set(HeaderPomeriumResponse, "true") w.Header().Set(HeaderPomeriumResponse, "true")
if e.Status >= 400 { if e.Status >= 400 {
log.Error(ctx). log.Ctx(ctx).Error().
Err(e.Err). Err(e.Err).
Int("status", e.Status). Int("status", e.Status).
Str("status-text", StatusText(e.Status)). Str("status-text", StatusText(e.Status)).

View file

@ -137,7 +137,7 @@ func (h *Handler) Update(ctx context.Context, cfg *config.Config) {
for p := range cfg.Options.GetAllPolicies() { for p := range cfg.Options.GetAllPolicies() {
id, err := p.RouteID() id, err := p.RouteID()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("reproxy: error getting route id") log.Ctx(ctx).Error().Err(err).Msg("reproxy: error getting route id")
continue continue
} }
h.policies[id] = p h.policies[id] = p

View file

@ -99,6 +99,6 @@ func Shutdown(srv *http.Server) {
defer cancel() defer cancel()
log.Info(context.TODO()).Str("signal", rec.String()).Msg("internal/httputil: shutting down servers") log.Info(context.TODO()).Str("signal", rec.String()).Msg("internal/httputil: shutting down servers")
if err := srv.Shutdown(ctx); err != nil { if err := srv.Shutdown(ctx); err != nil {
log.Error(context.TODO()).Err(err).Msg("internal/httputil: shutdown failed") log.Error().Err(err).Msg("internal/httputil: shutdown failed")
} }
} }

View file

@ -113,8 +113,8 @@ func Warn(ctx context.Context) *zerolog.Event {
// Error starts a new message with error level. // Error starts a new message with error level.
// //
// You must call Msg on the returned event in order to send the event. // You must call Msg on the returned event in order to send the event.
func Error(ctx context.Context) *zerolog.Event { func Error() *zerolog.Event {
return contextLogger(ctx).Error() return log.Error()
} }
func contextLogger(ctx context.Context) *zerolog.Logger { func contextLogger(ctx context.Context) *zerolog.Logger {

View file

@ -88,7 +88,7 @@ func ExampleInfo() {
// Example of a log at a particular "level" (in this case, "error") // Example of a log at a particular "level" (in this case, "error")
func ExampleError() { func ExampleError() {
captureOutput(func() { captureOutput(func() {
log.Error(context.Background()).Msg("hello world") log.Error().Msg("hello world")
}) })
// Output: {"level":"error","time":"2008-01-08T17:05:05Z","message":"hello world"} // Output: {"level":"error","time":"2008-01-08T17:05:05Z","message":"hello world"}
} }
@ -146,7 +146,7 @@ func ExampleSetLevel() {
log.Debug(context.Background()).Msg("Debug") log.Debug(context.Background()).Msg("Debug")
log.Info(context.Background()).Msg("Debug or Info") log.Info(context.Background()).Msg("Debug or Info")
log.Warn(context.Background()).Msg("Debug or Info or Warn") log.Warn(context.Background()).Msg("Debug or Info or Warn")
log.Error(context.Background()).Msg("Debug or Info or Warn or Error") log.Error().Msg("Debug or Info or Warn or Error")
log.SetLevel(zerolog.DebugLevel) log.SetLevel(zerolog.DebugLevel)
log.Debug(context.Background()).Msg("Debug") log.Debug(context.Background()).Msg("Debug")
}) })
@ -167,9 +167,9 @@ func ExampleContext() {
return c.Str("param_two", "two") return c.Str("param_two", "two")
}) })
log.Error(bg).Str("non_context_param", "value").Msg("background") log.Ctx(bg).Error().Str("non_context_param", "value").Msg("background")
log.Error(ctx1).Str("non_context_param", "value").Msg("first") log.Ctx(ctx1).Error().Str("non_context_param", "value").Msg("first")
log.Error(ctx2).Str("non_context_param", "value").Msg("second") log.Ctx(ctx2).Error().Str("non_context_param", "value").Msg("second")
for i := 0; i < 10; i++ { for i := 0; i < 10; i++ {
ctx1 = log.WithContext(ctx1, func(c zerolog.Context) zerolog.Context { ctx1 = log.WithContext(ctx1, func(c zerolog.Context) zerolog.Context {

View file

@ -11,7 +11,7 @@ func Recovery(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
defer func() { defer func() {
if err := recover(); err != nil { if err := recover(); err != nil {
log.Error(r.Context()).Interface("error", err).Msg("middleware: panic while serving http") log.Ctx(r.Context()).Error().Interface("error", err).Msg("middleware: panic while serving http")
} }
}() }()
next.ServeHTTP(w, r) next.ServeHTTP(w, r)

View file

@ -38,12 +38,12 @@ func (r *Reporter) OnConfigChange(ctx context.Context, cfg *config.Config) {
services, err := getReportedServices(cfg) services, err := getReportedServices(cfg)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("metrics announce to service registry is disabled") log.Ctx(ctx).Error().Err(err).Msg("metrics announce to service registry is disabled")
} }
sharedKey, err := cfg.Options.GetSharedKey() sharedKey, err := cfg.Options.GetSharedKey()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("decoding shared key") log.Ctx(ctx).Error().Err(err).Msg("decoding shared key")
return return
} }
@ -54,7 +54,7 @@ func (r *Reporter) OnConfigChange(ctx context.Context, cfg *config.Config) {
SignedJWTKey: sharedKey, SignedJWTKey: sharedKey,
}) })
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("connecting to registry") log.Ctx(ctx).Error().Err(err).Msg("connecting to registry")
return return
} }

View file

@ -32,7 +32,7 @@ func WithBackoff(ctx context.Context, name string, fn func(context.Context) erro
}, },
backoff.WithContext(b, ctx), backoff.WithContext(b, ctx),
func(err error, next time.Duration) { func(err error, next time.Duration) {
log.Error(ctx).Err(err).Str("service-name", name).Dur("next", next).Msg("retrying") log.Ctx(ctx).Error().Err(err).Str("service-name", name).Dur("next", next).Msg("retrying")
}, },
) )
} }

View file

@ -75,7 +75,7 @@ func RecordEnvoyOverloadActionState(ctx context.Context, tags EnvoyOverloadActio
EnvoyOverloadActionState.M(state), EnvoyOverloadActionState.M(state),
) )
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("internal/telemetry/metrics: failed to record") log.Ctx(ctx).Error().Err(err).Msg("internal/telemetry/metrics: failed to record")
} }
} }
@ -87,7 +87,7 @@ func RecordEnvoyOverloadActionThreshold(ctx context.Context, actionName string,
EnvoyOverloadActionThreshold.M(threshold), EnvoyOverloadActionThreshold.M(threshold),
) )
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("internal/telemetry/metrics: failed to record") log.Ctx(ctx).Error().Err(err).Msg("internal/telemetry/metrics: failed to record")
} }
} }
@ -99,6 +99,6 @@ func RecordEnvoyCgroupMemorySaturation(ctx context.Context, cgroup string, perce
EnvoyCgroupMemorySaturation.M(percent), EnvoyCgroupMemorySaturation.M(percent),
) )
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("internal/telemetry/metrics: failed to record") log.Ctx(ctx).Error().Err(err).Msg("internal/telemetry/metrics: failed to record")
} }
} }

View file

@ -143,7 +143,7 @@ func GRPCClientInterceptor(service string) grpc.UnaryClientInterceptor {
tag.Upsert(TagKeyGRPCService, rpcService), tag.Upsert(TagKeyGRPCService, rpcService),
) )
if tagErr != nil { if tagErr != nil {
log.Error(ctx).Err(tagErr).Str("context", "GRPCClientInterceptor").Msg("telemetry/metrics: failed to create context") log.Ctx(ctx).Error().Err(tagErr).Str("context", "GRPCClientInterceptor").Msg("telemetry/metrics: failed to create context")
return invoker(ctx, method, req, reply, cc, opts...) return invoker(ctx, method, req, reply, cc, opts...)
} }
@ -182,7 +182,7 @@ func (h *GRPCServerMetricsHandler) TagRPC(ctx context.Context, tagInfo *grpcstat
tag.Upsert(TagKeyGRPCService, rpcService), tag.Upsert(TagKeyGRPCService, rpcService),
) )
if tagErr != nil { if tagErr != nil {
log.Error(ctx).Err(tagErr).Str("context", "GRPCServerStatsHandler").Msg("telemetry/metrics: failed to create context") log.Ctx(ctx).Error().Err(tagErr).Str("context", "GRPCServerStatsHandler").Msg("telemetry/metrics: failed to create context")
return ctx return ctx
} }

View file

@ -120,7 +120,7 @@ func HTTPMetricsHandler(_ func() string, service string) func(next http.Handler)
tag.Upsert(TagKeyHTTPMethod, r.Method), tag.Upsert(TagKeyHTTPMethod, r.Method),
) )
if tagErr != nil { if tagErr != nil {
log.Error(ctx).Err(tagErr).Str("context", "HTTPMetricsHandler").Msg("telemetry/metrics: failed to create metrics tag") log.Ctx(ctx).Error().Err(tagErr).Str("context", "HTTPMetricsHandler").Msg("telemetry/metrics: failed to create metrics tag")
next.ServeHTTP(w, r) next.ServeHTTP(w, r)
return return
} }
@ -147,7 +147,7 @@ func HTTPMetricsRoundTripper(_ func() string, service string) func(next http.Rou
tag.Upsert(TagKeyHTTPMethod, r.Method), tag.Upsert(TagKeyHTTPMethod, r.Method),
) )
if tagErr != nil { if tagErr != nil {
log.Error(ctx).Err(tagErr).Str("context", "HTTPMetricsRoundTripper").Msg("telemetry/metrics: failed to create metrics tag") log.Ctx(ctx).Error().Err(tagErr).Str("context", "HTTPMetricsRoundTripper").Msg("telemetry/metrics: failed to create metrics tag")
return next.RoundTrip(r) return next.RoundTrip(r)
} }

View file

@ -328,7 +328,7 @@ func SetDBConfigInfo(ctx context.Context, service, configID string, version uint
}, },
configDBVersion.M(int64(version)), configDBVersion.M(int64(version)),
); err != nil { ); err != nil {
log.Error(ctx).Err(err).Msg("telemetry/metrics: failed to record config version number") log.Ctx(ctx).Error().Err(err).Msg("telemetry/metrics: failed to record config version number")
} }
if err := stats.RecordWithTags( if err := stats.RecordWithTags(
@ -339,13 +339,13 @@ func SetDBConfigInfo(ctx context.Context, service, configID string, version uint
}, },
configDBErrors.M(errCount), configDBErrors.M(errCount),
); err != nil { ); err != nil {
log.Error(ctx).Err(err).Msg("telemetry/metrics: failed to record config error count") log.Ctx(ctx).Error().Err(err).Msg("telemetry/metrics: failed to record config error count")
} }
} }
// SetDBConfigRejected records that a certain databroker config version has been rejected // SetDBConfigRejected records that a certain databroker config version has been rejected
func SetDBConfigRejected(ctx context.Context, service, configID string, version uint64, err error) { func SetDBConfigRejected(ctx context.Context, service, configID string, version uint64, err error) {
log.Error(ctx).Err(err).Msg("databroker: invalid config detected, ignoring") log.Ctx(ctx).Error().Err(err).Msg("databroker: invalid config detected, ignoring")
SetDBConfigInfo(ctx, service, configID, version, -1) SetDBConfigInfo(ctx, service, configID, version, -1)
} }
@ -361,7 +361,7 @@ func SetConfigInfo(ctx context.Context, service, configName string, checksum uin
[]tag.Mutator{serviceTag}, []tag.Mutator{serviceTag},
configLastReload.M(time.Now().Unix()), configLastReload.M(time.Now().Unix()),
); err != nil { ); err != nil {
log.Error(ctx).Err(err).Msg("telemetry/metrics: failed to record config checksum timestamp") log.Ctx(ctx).Error().Err(err).Msg("telemetry/metrics: failed to record config checksum timestamp")
} }
if err := stats.RecordWithTags( if err := stats.RecordWithTags(
@ -369,7 +369,7 @@ func SetConfigInfo(ctx context.Context, service, configName string, checksum uin
[]tag.Mutator{serviceTag}, []tag.Mutator{serviceTag},
configLastReloadSuccess.M(1), configLastReloadSuccess.M(1),
); err != nil { ); err != nil {
log.Error(ctx).Err(err).Msg("telemetry/metrics: failed to record config reload") log.Ctx(ctx).Error().Err(err).Msg("telemetry/metrics: failed to record config reload")
} }
} else { } else {
stats.Record(context.Background(), configLastReloadSuccess.M(0)) stats.Record(context.Background(), configLastReloadSuccess.M(0))

View file

@ -106,7 +106,7 @@ func newProxyMetricsHandler(exporter *ocprom.Exporter, endpoints []ScrapeEndpoin
scrapeEndpoints(endpoints, labels), scrapeEndpoints(endpoints, labels),
ocExport("pomerium", exporter, r, labels)), ocExport("pomerium", exporter, r, labels)),
); err != nil { ); err != nil {
log.Error(ctx).Err(err).Msg("responding to metrics request") log.Ctx(ctx).Error().Err(err).Msg("responding to metrics request")
} }
} }
} }

View file

@ -52,7 +52,7 @@ func (r *metricRegistry) init() {
), ),
) )
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("telemetry/metrics: failed to register build info metric") log.Ctx(ctx).Error().Err(err).Msg("telemetry/metrics: failed to register build info metric")
} }
r.configChecksum, err = r.registry.AddFloat64Gauge(metrics.ConfigChecksumDecimal, r.configChecksum, err = r.registry.AddFloat64Gauge(metrics.ConfigChecksumDecimal,
@ -60,7 +60,7 @@ func (r *metricRegistry) init() {
metric.WithLabelKeys(metrics.ServiceLabel, metrics.ConfigLabel), metric.WithLabelKeys(metrics.ServiceLabel, metrics.ConfigLabel),
) )
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("telemetry/metrics: failed to register config checksum metric") log.Ctx(ctx).Error().Err(err).Msg("telemetry/metrics: failed to register config checksum metric")
} }
r.policyCount, err = r.registry.AddInt64DerivedGauge(metrics.PolicyCountTotal, r.policyCount, err = r.registry.AddInt64DerivedGauge(metrics.PolicyCountTotal,
@ -68,12 +68,12 @@ func (r *metricRegistry) init() {
metric.WithLabelKeys(metrics.ServiceLabel), metric.WithLabelKeys(metrics.ServiceLabel),
) )
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("telemetry/metrics: failed to register policy count metric") log.Ctx(ctx).Error().Err(err).Msg("telemetry/metrics: failed to register policy count metric")
} }
err = registerAutocertMetrics(r.registry) err = registerAutocertMetrics(r.registry)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("telemetry/metrics: failed to register autocert metrics") log.Ctx(ctx).Error().Err(err).Msg("telemetry/metrics: failed to register autocert metrics")
} }
}) })
} }
@ -93,7 +93,7 @@ func (r *metricRegistry) setBuildInfo(service, hostname, envoyVersion string) {
metricdata.NewLabelValue(hostname), metricdata.NewLabelValue(hostname),
) )
if err != nil { if err != nil {
log.Error(context.TODO()).Err(err).Msg("telemetry/metrics: failed to get build info metric") log.Error().Err(err).Msg("telemetry/metrics: failed to get build info metric")
} }
// This sets our build_info metric to a constant 1 per // This sets our build_info metric to a constant 1 per
@ -107,7 +107,7 @@ func (r *metricRegistry) addPolicyCountCallback(service string, f func() int64)
} }
err := r.policyCount.UpsertEntry(f, metricdata.NewLabelValue(service)) err := r.policyCount.UpsertEntry(f, metricdata.NewLabelValue(service))
if err != nil { if err != nil {
log.Error(context.TODO()).Err(err).Msg("telemetry/metrics: failed to get policy count metric") log.Error().Err(err).Msg("telemetry/metrics: failed to get policy count metric")
} }
} }
@ -117,7 +117,7 @@ func (r *metricRegistry) setConfigChecksum(service string, configName string, ch
} }
m, err := r.configChecksum.GetEntry(metricdata.NewLabelValue(service), metricdata.NewLabelValue(configName)) m, err := r.configChecksum.GetEntry(metricdata.NewLabelValue(service), metricdata.NewLabelValue(configName))
if err != nil { if err != nil {
log.Error(context.TODO()).Err(err).Msg("telemetry/metrics: failed to get config checksum metric") log.Error().Err(err).Msg("telemetry/metrics: failed to get config checksum metric")
} }
m.Set(float64(checksum)) m.Set(float64(checksum))
} }

View file

@ -57,6 +57,6 @@ func RecordStorageOperation(ctx context.Context, tags *StorageOperationTags, dur
storageOperationDuration.M(duration.Milliseconds()), storageOperationDuration.M(duration.Milliseconds()),
) )
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("internal/telemetry/metrics: failed to record") log.Ctx(ctx).Error().Err(err).Msg("internal/telemetry/metrics: failed to record")
} }
} }

View file

@ -54,14 +54,14 @@ func main() {
toURL, err := url.Parse(*to) toURL, err := url.Parse(*to)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg(*to) log.Ctx(ctx).Error().Err(err).Msg(*to)
return return
} }
eg, ctx := errgroup.WithContext(ctx) eg, ctx := errgroup.WithContext(ctx)
conn, err := grpcConn(ctx, *addr, *key) conn, err := grpcConn(ctx, *addr, *key)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("databroker grpc conn") log.Ctx(ctx).Error().Err(err).Msg("databroker grpc conn")
return return
} }
defer conn.Close() defer conn.Close()
@ -69,7 +69,7 @@ func main() {
if *to == "" { if *to == "" {
*to, err = xdserr.RunEcho(ctx) *to, err = xdserr.RunEcho(ctx)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("echo server") log.Ctx(ctx).Error().Err(err).Msg("echo server")
return return
} }
} }
@ -84,7 +84,7 @@ func main() {
}) })
}) })
if err := eg.Wait(); err != nil { if err := eg.Wait(); err != nil {
log.Error(ctx).Err(err).Msg("altering config") log.Ctx(ctx).Error().Err(err).Msg("altering config")
} }
} }

View file

@ -52,7 +52,7 @@ func DumpConfig(ctx context.Context, adminURL string) (*adminv3.RoutesConfigDump
for i, data := range cfg.Configs { for i, data := range cfg.Configs {
a := new(anypb.Any) a := new(anypb.Any)
if err = opts.Unmarshal(data, a); err != nil { if err = opts.Unmarshal(data, a); err != nil {
log.Error(ctx).Err(err).Int("config", i). log.Ctx(ctx).Error().Err(err).Int("config", i).
// RawJSON("data", data). // RawJSON("data", data).
Msg("decode") Msg("decode")
} else { } else {

View file

@ -35,7 +35,7 @@ func WithTestPostgres(handler func(dsn string) error) error {
if err := pool.Retry(func() error { if err := pool.Retry(func() error {
conn, err := pgx.Connect(ctx, dsn) conn, err := pgx.Connect(ctx, dsn)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Send() log.Ctx(ctx).Error().Err(err).Send()
return err return err
} }
_ = conn.Close(ctx) _ = conn.Close(ctx)

View file

@ -35,7 +35,7 @@ func (p *metricsProducer[P]) Produce(ctx context.Context) ([]metricdata.ScopeMet
data, err := p.producer.Produce(ctx) data, err := p.producer.Produce(ctx)
if err != nil { if err != nil {
// we do not return the error here, as we do not want to block the export of other metrics // we do not return the error here, as we do not want to block the export of other metrics
log.Error(ctx).Err(err).Str("producer", p.name).Msg("failed to produce metrics") log.Ctx(ctx).Error().Err(err).Str("producer", p.name).Msg("failed to produce metrics")
return nil, nil return nil, nil
} }
return data, nil return data, nil

View file

@ -95,7 +95,7 @@ func (srv *Telemetry) handleRequests(ctx context.Context) error {
select { select {
case requests <- req: case requests <- req:
default: default:
log.Error(ctx).Msg("dropping telemetry request") log.Ctx(ctx).Error().Msg("dropping telemetry request")
} }
})) }))
}) })

View file

@ -78,7 +78,7 @@ func Run(ctx context.Context, src config.Source) error {
src.OnConfigChange(ctx, src.OnConfigChange(ctx,
func(ctx context.Context, cfg *config.Config) { func(ctx context.Context, cfg *config.Config) {
if err := controlPlane.OnConfigChange(ctx, cfg); err != nil { if err := controlPlane.OnConfigChange(ctx, cfg); err != nil {
log.Error(ctx).Err(err).Msg("config change") log.Ctx(ctx).Error().Err(err).Msg("config change")
} }
}) })

View file

@ -18,7 +18,7 @@ func GetCertPool(ca, caFile string) (*x509.CertPool, error) {
ctx := context.TODO() ctx := context.TODO()
rootCAs, err := x509.SystemCertPool() rootCAs, err := x509.SystemCertPool()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("pkg/cryptutil: failed getting system cert pool making new one") log.Ctx(ctx).Error().Err(err).Msg("pkg/cryptutil: failed getting system cert pool making new one")
rootCAs = x509.NewCertPool() rootCAs = x509.NewCertPool()
} }
if ca == "" && caFile == "" { if ca == "" && caFile == "" {

View file

@ -82,7 +82,7 @@ func NewServer(ctx context.Context, src config.Source, builder *envoyconfig.Buil
if rm, err := NewSharedResourceMonitor(ctx, src, srv.wd); err == nil { if rm, err := NewSharedResourceMonitor(ctx, src, srv.wd); err == nil {
srv.resourceMonitor = rm srv.resourceMonitor = rm
} else { } else {
log.Error(ctx).Err(err).Str("service", "envoy").Msg("not starting resource monitor") log.Ctx(ctx).Error().Err(err).Str("service", "envoy").Msg("not starting resource monitor")
} }
src.OnConfigChange(ctx, srv.onConfigChange) src.OnConfigChange(ctx, srv.onConfigChange)
@ -107,7 +107,7 @@ func (srv *Server) Close() error {
if srv.cmd != nil && srv.cmd.Process != nil { if srv.cmd != nil && srv.cmd.Process != nil {
err = srv.cmd.Process.Kill() err = srv.cmd.Process.Kill()
if err != nil { if err != nil {
log.Error(context.TODO()).Err(err).Str("service", "envoy").Msg("envoy: failed to kill process on close") log.Error().Err(err).Str("service", "envoy").Msg("envoy: failed to kill process on close")
} }
srv.cmd = nil srv.cmd = nil
} }
@ -136,7 +136,7 @@ func (srv *Server) update(ctx context.Context, cfg *config.Config) {
log.Debug(ctx).Msg("envoy: starting envoy process") log.Debug(ctx).Msg("envoy: starting envoy process")
if err := srv.run(ctx, cfg); err != nil { if err := srv.run(ctx, cfg); err != nil {
log.Error(ctx).Err(err).Str("service", "envoy").Msg("envoy: failed to run envoy process") log.Ctx(ctx).Error().Err(err).Str("service", "envoy").Msg("envoy: failed to run envoy process")
return return
} }
} }
@ -146,7 +146,7 @@ func (srv *Server) run(ctx context.Context, cfg *config.Config) error {
srv.monitorProcessCancel() srv.monitorProcessCancel()
if err := srv.writeConfig(ctx, cfg); err != nil { if err := srv.writeConfig(ctx, cfg); err != nil {
log.Error(ctx).Err(err).Str("service", "envoy").Msg("envoy: failed to write envoy config") log.Ctx(ctx).Error().Err(err).Str("service", "envoy").Msg("envoy: failed to write envoy config")
return err return err
} }
@ -196,7 +196,7 @@ func (srv *Server) run(ctx context.Context, cfg *config.Config) error {
if errors.Is(err, context.Canceled) { if errors.Is(err, context.Canceled) {
log.Debug(ctx).Err(err).Str("service", "envoy").Msg("resource monitor stopped") log.Debug(ctx).Err(err).Str("service", "envoy").Msg("resource monitor stopped")
} else { } else {
log.Error(ctx).Err(err).Str("service", "envoy").Msg("resource monitor exited with error") log.Ctx(ctx).Error().Err(err).Str("service", "envoy").Msg("resource monitor exited with error")
} }
} }
}() }()
@ -261,7 +261,7 @@ func (srv *Server) handleLogs(ctx context.Context, rc io.ReadCloser) {
if errors.Is(err, io.EOF) || errors.Is(err, os.ErrClosed) { if errors.Is(err, io.EOF) || errors.Is(err, os.ErrClosed) {
break break
} }
log.Error(ctx).Err(err).Msg("failed to read log") log.Ctx(ctx).Error().Err(err).Msg("failed to read log")
time.Sleep(bo.NextBackOff()) time.Sleep(bo.NextBackOff())
continue continue
} }

View file

@ -32,7 +32,7 @@ var sysProcAttr = &syscall.SysProcAttr{
func (srv *Server) runProcessCollector(ctx context.Context) { func (srv *Server) runProcessCollector(ctx context.Context) {
pc := metrics.NewProcessCollector("envoy") pc := metrics.NewProcessCollector("envoy")
if err := view.Register(pc.Views()...); err != nil { if err := view.Register(pc.Views()...); err != nil {
log.Error(ctx).Err(err).Msg("failed to register envoy process metric views") log.Ctx(ctx).Error().Err(err).Msg("failed to register envoy process metric views")
} }
defer view.Unregister(pc.Views()...) defer view.Unregister(pc.Views()...)
@ -57,7 +57,7 @@ func (srv *Server) runProcessCollector(ctx context.Context) {
if pid > 0 { if pid > 0 {
err := pc.Measure(ctx, pid) err := pc.Measure(ctx, pid)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("failed to measure envoy process metrics") log.Ctx(ctx).Error().Err(err).Msg("failed to measure envoy process metrics")
} }
} }
} }
@ -69,7 +69,7 @@ func (srv *Server) prepareRunEnvoyCommand(ctx context.Context, sharedArgs []stri
log.Info(ctx).Msg("envoy: releasing envoy process for hot-reload") log.Info(ctx).Msg("envoy: releasing envoy process for hot-reload")
err := srv.cmd.Process.Release() err := srv.cmd.Process.Release()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Str("service", "envoy").Msg("envoy: failed to release envoy process for hot-reload") log.Ctx(ctx).Error().Err(err).Str("service", "envoy").Msg("envoy: failed to release envoy process for hot-reload")
} }
} }

View file

@ -329,7 +329,7 @@ LOOP:
if limit := limitWatcher.Value(); limit > 0 { if limit := limitWatcher.Value(); limit > 0 {
usage, err := s.driver.MemoryUsage(s.cgroup) usage, err := s.driver.MemoryUsage(s.cgroup)
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("failed to get memory saturation") log.Ctx(ctx).Error().Err(err).Msg("failed to get memory saturation")
continue continue
} }
saturation = max(0.0, min(1.0, float64(usage)/float64(limit))) saturation = max(0.0, min(1.0, float64(usage)/float64(limit)))
@ -342,7 +342,7 @@ LOOP:
if saturationStr != lastValue { if saturationStr != lastValue {
lastValue = saturationStr lastValue = saturationStr
if err := s.writeMetricFile(groupMemory, metricCgroupMemorySaturation, saturationStr, 0o644); err != nil { if err := s.writeMetricFile(groupMemory, metricCgroupMemorySaturation, saturationStr, 0o644); err != nil {
log.Error(ctx).Err(err).Msg("failed to write metric file") log.Ctx(ctx).Error().Err(err).Msg("failed to write metric file")
} }
s.updateActionStates(ctx, saturation) s.updateActionStates(ctx, saturation)
metrics.RecordEnvoyCgroupMemorySaturation(ctx, s.cgroup, saturation) metrics.RecordEnvoyCgroupMemorySaturation(ctx, s.cgroup, saturation)
@ -726,7 +726,7 @@ func (w *memoryLimitWatcher) Watch(ctx context.Context) error {
for ctx.Err() == nil { for ctx.Err() == nil {
v, err := w.readValue() v, err := w.readValue()
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("error reading memory limit") log.Ctx(ctx).Error().Err(err).Msg("error reading memory limit")
} else if prev := w.value.Swap(v); prev != v { } else if prev := w.value.Swap(v); prev != v {
log.Debug(ctx). log.Debug(ctx).
Uint64("prev", prev). Uint64("prev", prev).

View file

@ -95,7 +95,7 @@ func (locker *Leaser) runOnce(ctx context.Context, resetBackoff func()) error {
if status.Code(err) == codes.AlreadyExists { if status.Code(err) == codes.AlreadyExists {
return nil return nil
} else if err != nil { } else if err != nil {
log.Error(ctx).Err(err).Str("lease_name", locker.leaseName).Msg("leaser: error acquiring lease") log.Ctx(ctx).Error().Err(err).Str("lease_name", locker.leaseName).Msg("leaser: error acquiring lease")
return retryableError{err} return retryableError{err}
} }
resetBackoff() resetBackoff()
@ -149,7 +149,7 @@ func (locker *Leaser) withLease(ctx context.Context, leaseID string) error {
// failed to renew lease // failed to renew lease
return nil return nil
} else if err != nil { } else if err != nil {
log.Error(ctx).Err(err).Str("lease_name", locker.leaseName).Msg("leaser: error renewing lease") log.Ctx(ctx).Error().Err(err).Str("lease_name", locker.leaseName).Msg("leaser: error renewing lease")
return retryableError{err} return retryableError{err}
} }
} }

View file

@ -117,7 +117,7 @@ func (syncer *Syncer) Run(ctx context.Context) error {
} }
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("sync") log.Ctx(ctx).Error().Err(err).Msg("sync")
select { select {
case <-ctx.Done(): case <-ctx.Done():
return ctx.Err() return ctx.Err()
@ -162,7 +162,7 @@ func (syncer *Syncer) sync(ctx context.Context) error {
for { for {
res, err := stream.Recv() res, err := stream.Recv()
if status.Code(err) == codes.Aborted { if status.Code(err) == codes.Aborted {
log.Error(ctx).Err(err).Msg("aborted sync due to mismatched server version") log.Ctx(ctx).Error().Err(err).Msg("aborted sync due to mismatched server version")
// server version changed, so re-init // server version changed, so re-init
syncer.serverVersion = 0 syncer.serverVersion = 0
return nil return nil

View file

@ -28,6 +28,6 @@ func (h *healthCheckSrv) Check(ctx context.Context, req *grpc_health.HealthCheck
// Watch is not implemented as is not used by Envoy // Watch is not implemented as is not used by Envoy
func (h *healthCheckSrv) Watch(req *grpc_health.HealthCheckRequest, _ grpc_health.Health_WatchServer) error { func (h *healthCheckSrv) Watch(req *grpc_health.HealthCheckRequest, _ grpc_health.Health_WatchServer) error {
log.Error(context.Background()).Str("service", req.Service).Msg("health check watch") log.Error().Str("service", req.Service).Msg("health check watch")
return status.Errorf(codes.Unimplemented, "method Watch not implemented") return status.Errorf(codes.Unimplemented, "method Watch not implemented")
} }

View file

@ -264,13 +264,13 @@ func (mgr *Manager) refreshSessionInternal(
metrics.RecordIdentityManagerSessionRefresh(ctx, err) metrics.RecordIdentityManagerSessionRefresh(ctx, err)
mgr.recordLastError(metrics_ids.IdentityManagerLastSessionRefreshError, err) mgr.recordLastError(metrics_ids.IdentityManagerLastSessionRefreshError, err)
if isTemporaryError(err) { if isTemporaryError(err) {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to refresh oauth2 token") Msg("failed to refresh oauth2 token")
return true return true
} else if err != nil { } else if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to refresh oauth2 token, deleting session") Msg("failed to refresh oauth2 token, deleting session")
@ -283,13 +283,13 @@ func (mgr *Manager) refreshSessionInternal(
metrics.RecordIdentityManagerUserRefresh(ctx, err) metrics.RecordIdentityManagerUserRefresh(ctx, err)
mgr.recordLastError(metrics_ids.IdentityManagerLastUserRefreshError, err) mgr.recordLastError(metrics_ids.IdentityManagerLastUserRefreshError, err)
if isTemporaryError(err) { if isTemporaryError(err) {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to update user info") Msg("failed to update user info")
return true return true
} else if err != nil { } else if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to update user info, deleting session") Msg("failed to update user info, deleting session")
@ -299,12 +299,12 @@ func (mgr *Manager) refreshSessionInternal(
fm, err := fieldmaskpb.New(s.Session, "oauth_token", "id_token", "claims") fm, err := fieldmaskpb.New(s.Session, "oauth_token", "id_token", "claims")
if err != nil { if err != nil {
log.Error(ctx).Err(err).Msg("internal error") log.Ctx(ctx).Error().Err(err).Msg("internal error")
return false return false
} }
if _, err := session.Patch(ctx, mgr.cfg.Load().dataBrokerClient, s.Session, fm); err != nil { if _, err := session.Patch(ctx, mgr.cfg.Load().dataBrokerClient, s.Session, fm); err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to update session") Msg("failed to update session")
@ -344,13 +344,13 @@ func (mgr *Manager) refreshUser(ctx context.Context, userID string) {
metrics.RecordIdentityManagerUserRefresh(ctx, err) metrics.RecordIdentityManagerUserRefresh(ctx, err)
mgr.recordLastError(metrics_ids.IdentityManagerLastUserRefreshError, err) mgr.recordLastError(metrics_ids.IdentityManagerLastUserRefreshError, err)
if isTemporaryError(err) { if isTemporaryError(err) {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to update user info") Msg("failed to update user info")
return return
} else if err != nil { } else if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to update user info, deleting session") Msg("failed to update user info, deleting session")
@ -360,7 +360,7 @@ func (mgr *Manager) refreshUser(ctx context.Context, userID string) {
res, err := databroker.Put(ctx, mgr.cfg.Load().dataBrokerClient, u.User) res, err := databroker.Put(ctx, mgr.cfg.Load().dataBrokerClient, u.User)
if err != nil { if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to update user") Msg("failed to update user")
@ -378,7 +378,7 @@ func (mgr *Manager) onUpdateRecords(ctx context.Context, msg updateRecordsMessag
var pbSession session.Session var pbSession session.Session
err := record.GetData().UnmarshalTo(&pbSession) err := record.GetData().UnmarshalTo(&pbSession)
if err != nil { if err != nil {
log.Error(ctx).Msgf("error unmarshaling session: %s", err) log.Ctx(ctx).Error().Msgf("error unmarshaling session: %s", err)
continue continue
} }
mgr.onUpdateSession(record, &pbSession) mgr.onUpdateSession(record, &pbSession)
@ -386,7 +386,7 @@ func (mgr *Manager) onUpdateRecords(ctx context.Context, msg updateRecordsMessag
var pbUser user.User var pbUser user.User
err := record.GetData().UnmarshalTo(&pbUser) err := record.GetData().UnmarshalTo(&pbUser)
if err != nil { if err != nil {
log.Error(ctx).Msgf("error unmarshaling user: %s", err) log.Ctx(ctx).Error().Msgf("error unmarshaling user: %s", err)
continue continue
} }
mgr.onUpdateUser(ctx, record, &pbUser) mgr.onUpdateUser(ctx, record, &pbUser)
@ -441,7 +441,7 @@ func (mgr *Manager) deleteSession(ctx context.Context, userID, sessionID string)
if status.Code(err) == codes.NotFound { if status.Code(err) == codes.NotFound {
return return
} else if err != nil { } else if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("session_id", sessionID). Str("session_id", sessionID).
Msg("failed to delete session") Msg("failed to delete session")
return return
@ -454,7 +454,7 @@ func (mgr *Manager) deleteSession(ctx context.Context, userID, sessionID string)
Records: []*databroker.Record{record}, Records: []*databroker.Record{record},
}) })
if err != nil { if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("session_id", sessionID). Str("session_id", sessionID).
Msg("failed to delete session") Msg("failed to delete session")
return return

View file

@ -238,13 +238,13 @@ func (mgr *Manager) refreshSession(ctx context.Context, sessionID string) {
metrics.RecordIdentityManagerSessionRefresh(ctx, err) metrics.RecordIdentityManagerSessionRefresh(ctx, err)
mgr.recordLastError(metrics_ids.IdentityManagerLastSessionRefreshError, err) mgr.recordLastError(metrics_ids.IdentityManagerLastSessionRefreshError, err)
if isTemporaryError(err) { if isTemporaryError(err) {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to refresh oauth2 token") Msg("failed to refresh oauth2 token")
return return
} else if err != nil { } else if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to refresh oauth2 token, deleting session") Msg("failed to refresh oauth2 token, deleting session")
@ -257,13 +257,13 @@ func (mgr *Manager) refreshSession(ctx context.Context, sessionID string) {
metrics.RecordIdentityManagerUserRefresh(ctx, err) metrics.RecordIdentityManagerUserRefresh(ctx, err)
mgr.recordLastError(metrics_ids.IdentityManagerLastUserRefreshError, err) mgr.recordLastError(metrics_ids.IdentityManagerLastUserRefreshError, err)
if isTemporaryError(err) { if isTemporaryError(err) {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to update user info") Msg("failed to update user info")
return return
} else if err != nil { } else if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to update user info, deleting session") Msg("failed to update user info, deleting session")
@ -376,7 +376,7 @@ func (mgr *Manager) updateSession(ctx context.Context, s *session.Session) {
fm, err := fieldmaskpb.New(s, "oauth_token", "id_token", "claims") fm, err := fieldmaskpb.New(s, "oauth_token", "id_token", "claims")
if err != nil { if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to create fieldmask for session") Msg("failed to create fieldmask for session")
@ -385,7 +385,7 @@ func (mgr *Manager) updateSession(ctx context.Context, s *session.Session) {
_, err = session.Patch(ctx, mgr.cfg.Load().dataBrokerClient, s, fm) _, err = session.Patch(ctx, mgr.cfg.Load().dataBrokerClient, s, fm)
if err != nil { if err != nil {
log.Error(ctx).Err(err). log.Ctx(ctx).Error().Err(err).
Str("user_id", s.GetUserId()). Str("user_id", s.GetUserId()).
Str("session_id", s.GetId()). Str("session_id", s.GetId()).
Msg("failed to patch updated session record") Msg("failed to patch updated session record")

View file

@ -400,7 +400,7 @@ func (backend *Backend) doPeriodically(f func(ctx context.Context) error, dur ti
} }
} else { } else {
if !errors.Is(err, context.Canceled) { if !errors.Is(err, context.Canceled) {
log.Error(ctx).Err(err).Msg("storage/postgres") log.Ctx(ctx).Error().Err(err).Msg("storage/postgres")
} }
select { select {
case <-backend.closeCtx.Done(): case <-backend.closeCtx.Done():

View file

@ -57,7 +57,7 @@ func MatchAny(any *anypb.Any, query string) bool {
msg, err := any.UnmarshalNew() msg, err := any.UnmarshalNew()
if err != nil { if err != nil {
// ignore invalid any types // ignore invalid any types
log.Error(context.TODO()).Err(err).Msg("storage: invalid any type") log.Error().Err(err).Msg("storage: invalid any type")
return false return false
} }

View file

@ -93,10 +93,10 @@ func (p *Proxy) OnConfigChange(_ context.Context, cfg *config.Config) {
p.currentOptions.Store(cfg.Options) p.currentOptions.Store(cfg.Options)
if err := p.setHandlers(cfg.Options); err != nil { if err := p.setHandlers(cfg.Options); err != nil {
log.Error(context.TODO()).Err(err).Msg("proxy: failed to update proxy handlers from configuration settings") log.Error().Err(err).Msg("proxy: failed to update proxy handlers from configuration settings")
} }
if state, err := newProxyStateFromConfig(cfg); err != nil { if state, err := newProxyStateFromConfig(cfg); err != nil {
log.Error(context.TODO()).Err(err).Msg("proxy: failed to update proxy state from configuration settings") log.Error().Err(err).Msg("proxy: failed to update proxy state from configuration settings")
} else { } else {
p.state.Store(state) p.state.Store(state)
} }