diff options
author | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2020-11-18 13:36:23 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2020-11-18 13:36:23 +0300 |
commit | f25a1b2c74ee50bbf911dade89b8239f4e897d33 (patch) | |
tree | 40f3acb2ae87c35090448f893c318170a4ff972b | |
parent | 8ee45d6d08e9cb9c5f44454e9ac367d72ff4558e (diff) | |
parent | d4737850b8ec7a7b76e6a6e71b9dd7f68669eaf3 (diff) |
Merge branch 'client-identity' into 'master'
Support for logging propagated client identity
See merge request gitlab-org/gitaly!2802
-rw-r--r-- | changelogs/unreleased/client-identity.yml | 5 | ||||
-rw-r--r-- | internal/middleware/metadatahandler/metadatahandler.go | 24 |
2 files changed, 29 insertions, 0 deletions
diff --git a/changelogs/unreleased/client-identity.yml b/changelogs/unreleased/client-identity.yml new file mode 100644 index 000000000..0f4c30f71 --- /dev/null +++ b/changelogs/unreleased/client-identity.yml @@ -0,0 +1,5 @@ +--- +title: Support for logging propagated client identity +merge_request: 2802 +author: +type: added diff --git a/internal/middleware/metadatahandler/metadatahandler.go b/internal/middleware/metadatahandler/metadatahandler.go index 70e38b7cd..cfe5cb1a4 100644 --- a/internal/middleware/metadatahandler/metadatahandler.go +++ b/internal/middleware/metadatahandler/metadatahandler.go @@ -49,6 +49,15 @@ const AuthVersionKey = "grpc.meta.auth_version" // DeadlineTypeKey is the key used in ctx_tags to store the deadline type const DeadlineTypeKey = "grpc.meta.deadline_type" +// RemoteIPKey is the key used in ctx_tags to store the remote_ip +const RemoteIPKey = "remote_ip" + +// UserIDKey is the key used in ctx_tags to store the user_id +const UserIDKey = "user_id" + +// UsernameKey is the key used in ctx_tags to store the username +const UsernameKey = "username" + // CorrelationIDKey is the key used in ctx_tags to store the correlation ID const CorrelationIDKey = "correlation_id" @@ -117,6 +126,21 @@ func addMetadataTags(ctx context.Context) metadataTags { tags.Set(AuthVersionKey, authInfo.Version) } + metadata = getFromMD(md, "remote_ip") + if metadata != "" { + tags.Set(RemoteIPKey, metadata) + } + + metadata = getFromMD(md, "user_id") + if metadata != "" { + tags.Set(UserIDKey, metadata) + } + + metadata = getFromMD(md, "username") + if metadata != "" { + tags.Set(UsernameKey, metadata) + } + // This is a stop-gap approach to logging correlation_ids correlationID := correlation.ExtractFromContext(ctx) if correlationID != "" { |