##// END OF EJS Templates
logging: expose extra metadata to various important logs for loki
super-admin -
r4816:0163d6c9 default
parent child Browse files
Show More
@@ -776,7 +776,8 b' def authenticate(username, password, env'
776 auth_time = time.time() - start
776 auth_time = time.time() - start
777 log.debug('Authentication for plugin `%s` completed in %.4fs, '
777 log.debug('Authentication for plugin `%s` completed in %.4fs, '
778 'expiration time of fetched cache %.1fs.',
778 'expiration time of fetched cache %.1fs.',
779 plugin.get_id(), auth_time, cache_ttl)
779 plugin.get_id(), auth_time, cache_ttl,
780 extra={"plugin": plugin.get_id(), "time": auth_time})
780
781
781 log.debug('PLUGIN USER DATA: %s', plugin_user)
782 log.debug('PLUGIN USER DATA: %s', plugin_user)
782
783
@@ -785,7 +786,12 b' def authenticate(username, password, env'
785 if plugin_user:
786 if plugin_user:
786 log.debug('Plugin returned proper authentication data')
787 log.debug('Plugin returned proper authentication data')
787 if statsd:
788 if statsd:
789 elapsed_time_ms = round(1000.0 * auth_time) # use ms only
788 statsd.incr('rhodecode_login_success_total')
790 statsd.incr('rhodecode_login_success_total')
791 statsd.timing("rhodecode_login_timing.histogram", elapsed_time_ms,
792 tags=["plugin:{}".format(plugin.get_id())],
793 use_decimals=False
794 )
789 return plugin_user
795 return plugin_user
790
796
791 # we failed to Auth because .auth() method didn't return proper user
797 # we failed to Auth because .auth() method didn't return proper user
@@ -222,7 +222,8 b' class RhodeCodeAuthPlugin(RhodeCodeExter'
222 'extern_type': extern_type,
222 'extern_type': extern_type,
223 }
223 }
224
224
225 log.info('user `%s` authenticated correctly', user_attrs['username'])
225 log.info('user `%s` authenticated correctly', user_attrs['username'],
226 extra={"action": "user_auth_ok", "module": "auth_headers", "username": user_attrs["username"]})
226 return user_attrs
227 return user_attrs
227
228
228
229
@@ -534,7 +534,8 b' class RhodeCodeAuthPlugin(RhodeCodeExter'
534 }
534 }
535
535
536 log.debug('ldap user: %s', user_attrs)
536 log.debug('ldap user: %s', user_attrs)
537 log.info('user `%s` authenticated correctly', user_attrs['username'])
537 log.info('user `%s` authenticated correctly', user_attrs['username'],
538 extra={"action": "user_auth_ok", "module": "auth_ldap", "username": user_attrs["username"]})
538
539
539 return user_attrs
540 return user_attrs
540
541
@@ -162,7 +162,8 b' class RhodeCodeAuthPlugin(RhodeCodeExter'
162 pass
162 pass
163
163
164 log.debug("pamuser: %s", user_attrs)
164 log.debug("pamuser: %s", user_attrs)
165 log.info('user `%s` authenticated correctly', user_attrs['username'])
165 log.info('user `%s` authenticated correctly', user_attrs['username'],
166 extra={"action": "user_auth_ok", "module": "auth_pam", "username": user_attrs["username"]})
166 return user_attrs
167 return user_attrs
167
168
168
169
@@ -167,11 +167,13 b' class RhodeCodeAuthPlugin(RhodeCodeAuthP'
167
167
168 if userobj.username == User.DEFAULT_USER and userobj.active:
168 if userobj.username == User.DEFAULT_USER and userobj.active:
169 log.info('user `%s` authenticated correctly as anonymous user',
169 log.info('user `%s` authenticated correctly as anonymous user',
170 userobj.username)
170 userobj.username,
171 extra={"action": "user_auth_ok", "module": "auth_rhodecode_anon", "username": userobj.username})
171 return user_attrs
172 return user_attrs
172
173
173 elif userobj.username == username and password_match:
174 elif userobj.username == username and password_match:
174 log.info('user `%s` authenticated correctly', userobj.username)
175 log.info('user `%s` authenticated correctly', userobj.username,
176 extra={"action": "user_auth_ok", "module": "auth_rhodecode", "username": userobj.username})
175 return user_attrs
177 return user_attrs
176 log.warning("user `%s` used a wrong password when "
178 log.warning("user `%s` used a wrong password when "
177 "authenticating on this plugin", userobj.username)
179 "authenticating on this plugin", userobj.username)
@@ -252,7 +252,7 b' class Lock(object):'
252 logger.warning("Failed to get %r.", self._name)
252 logger.warning("Failed to get %r.", self._name)
253 return False
253 return False
254
254
255 logger.info("Got lock for %r.", self._name)
255 logger.debug("Got lock for %r.", self._name)
256 if self._lock_renewal_interval is not None:
256 if self._lock_renewal_interval is not None:
257 self._start_lock_renewer()
257 self._start_lock_renewer()
258 return True
258 return True
@@ -284,7 +284,9 b' def store(action, user, action_data=None'
284 sa_session.commit()
284 sa_session.commit()
285
285
286 log.info('AUDIT[%s]: Logging action: `%s` by user:id:%s[%s] ip:%s',
286 log.info('AUDIT[%s]: Logging action: `%s` by user:id:%s[%s] ip:%s',
287 entry_id, action_name, user_id, username, ip_address)
287 entry_id, action_name, user_id, username, ip_address,
288 extra={"entry_id": entry_id, "action": action_name,
289 "user_id": user_id, "ip": ip_address})
288
290
289 except Exception:
291 except Exception:
290 log.exception('AUDIT: failed to store audit log')
292 log.exception('AUDIT: failed to store audit log')
@@ -1490,7 +1490,8 b' class AuthUser(object):'
1490 return True
1490 return True
1491 else:
1491 else:
1492 log.info('Access for IP:%s forbidden for user %s, '
1492 log.info('Access for IP:%s forbidden for user %s, '
1493 'not in %s', ip_addr, user_id, allowed_ips)
1493 'not in %s', ip_addr, user_id, allowed_ips,
1494 extra={"ip": ip_addr, "user_id": user_id})
1494 return False
1495 return False
1495
1496
1496 def get_branch_permissions(self, repo_name, perms=None):
1497 def get_branch_permissions(self, repo_name, perms=None):
@@ -112,7 +112,7 b' class DbManage(object):'
112 else:
112 else:
113 destroy = self.ask_ok('Are you sure that you want to destroy the old database? [y/n]')
113 destroy = self.ask_ok('Are you sure that you want to destroy the old database? [y/n]')
114 if not destroy:
114 if not destroy:
115 log.info('Nothing done.')
115 log.info('db tables bootstrap: Nothing done.')
116 sys.exit(0)
116 sys.exit(0)
117 if destroy:
117 if destroy:
118 Base.metadata.drop_all()
118 Base.metadata.drop_all()
@@ -54,17 +54,20 b' class RequestWrapperTween(object):'
54 _ver_ = rhodecode.__version__
54 _ver_ = rhodecode.__version__
55 _path = safe_str(get_access_path(request.environ))
55 _path = safe_str(get_access_path(request.environ))
56 _auth_user = self._get_user_info(request)
56 _auth_user = self._get_user_info(request)
57 ip = get_ip_addr(request.environ)
58 match_route = request.matched_route.name if request.matched_route else "NOT_FOUND"
57
59
58 total = time.time() - start
60 total = time.time() - start
59 log.info(
61 log.info(
60 'Req[%4s] %s %s Request to %s time: %.4fs [%s], RhodeCode %s',
62 'Req[%4s] %s %s Request to %s time: %.4fs [%s], RhodeCode %s',
61 count, _auth_user, request.environ.get('REQUEST_METHOD'),
63 count, _auth_user, request.environ.get('REQUEST_METHOD'),
62 _path, total, get_user_agent(request. environ), _ver_
64 _path, total, get_user_agent(request. environ), _ver_,
65 extra={"time": total, "ver": _ver_, "ip": ip,
66 "path": _path, "view_name": match_route}
63 )
67 )
64
68
65 statsd = request.registry.statsd
69 statsd = request.registry.statsd
66 if statsd:
70 if statsd:
67 match_route = request.matched_route.name if request.matched_route else "NOT_FOUND"
68 resp_code = getattr(response, 'status_code', 'UNDEFINED')
71 resp_code = getattr(response, 'status_code', 'UNDEFINED')
69 elapsed_time_ms = round(1000.0 * total) # use ms only
72 elapsed_time_ms = round(1000.0 * total) # use ms only
70 statsd.timing(
73 statsd.timing(
@@ -121,11 +121,11 b' class RhodeCodeCacheRegion(CacheRegion):'
121 def get_or_create_for_user_func(key_generator, user_func, *arg, **kw):
121 def get_or_create_for_user_func(key_generator, user_func, *arg, **kw):
122
122
123 if not condition:
123 if not condition:
124 log.debug('Calling un-cached func:%s', user_func.func_name)
124 log.debug('Calling un-cached method:%s', user_func.func_name)
125 start = time.time()
125 start = time.time()
126 result = user_func(*arg, **kw)
126 result = user_func(*arg, **kw)
127 total = time.time() - start
127 total = time.time() - start
128 log.debug('un-cached func:%s took %.4fs', user_func.func_name, total)
128 log.debug('un-cached method:%s took %.4fs', user_func.func_name, total)
129 return result
129 return result
130
130
131 key = key_generator(*arg, **kw)
131 key = key_generator(*arg, **kw)
@@ -133,7 +133,7 b' class RhodeCodeCacheRegion(CacheRegion):'
133 timeout = expiration_time() if expiration_time_is_callable \
133 timeout = expiration_time() if expiration_time_is_callable \
134 else expiration_time
134 else expiration_time
135
135
136 log.debug('Calling cached fn:%s', user_func.func_name)
136 log.debug('Calling cached method:`%s`', user_func.func_name)
137 return self.get_or_create(key, user_func, timeout, should_cache_fn, (arg, kw))
137 return self.get_or_create(key, user_func, timeout, should_cache_fn, (arg, kw))
138
138
139 def cache_decorator(user_func):
139 def cache_decorator(user_func):
General Comments 0
You need to be logged in to leave comments. Login now