grpc/rpclog/fields.go
func FieldsFromIncomingContext(ctx context.Context) ttnlog.Fields {
	fields := make(fieldMap)
	if peer, ok := peer.FromContext(ctx); ok {
		fields.addFromPeer(peer)
	}
	if md, ok := metadata.FromIncomingContext(ctx); ok {
		fields.addFromMD(md)
	}
	return fields.LogFields()
}
func FieldsFromIncomingContext(ctx context.Context) ttnlog.Fields {
	fields := make(fieldMap)
	if peer, ok := peer.FromContext(ctx); ok {
		fields.addFromPeer(peer)
	}
	if md, ok := metadata.FromIncomingContext(ctx); ok {
		fields.addFromMD(md)
	}
	return fields.LogFields()
}
// FieldsFromIncomingContext returns peer information and MDLogFields from the given context