Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Update type annotations for compatiblity with prometheus_client 0.14 (#12389) | Richard van der Hoff | 2022-04-06 | 1 | -7/+9 |
| | | | | | | | Principally, `prometheus_client.REGISTRY.register` now requires its argument to extend `prometheus_client.Collector`. Additionally, `Gauge.set` is now annotated so that passing `Optional[int]` causes an error. | ||||
* | Use version string helper from matrix-common (#11979) | David Robertson | 2022-02-14 | 1 | -3/+4 |
| | | | | * Require latest matrix-common * Use the common function | ||||
* | Fix type errors introduced by new annotations in the Prometheus Client ↵ | reivilibre | 2022-02-02 | 1 | -1/+9 |
| | | | | | library. (#11832) Co-authored-by: David Robertson <davidr@element.io> | ||||
* | Improve `reactor_tick_time` metric (#11724) | Richard van der Hoff | 2022-01-17 | 1 | -93/+1 |
| | | | | | | | | | | | The existing implementation of the `python_twisted_reactor_tick_time` metric is pretty useless, because it *only* measures the time taken to execute timed calls and callbacks from threads. That neglects everything that happens off the back of I/O, which is obviously quite a lot for us. To improve this, I've hooked into a different place in the reactor - in particular, where it calls `epoll`. That call is the only place it should wait for something to happen - the rest of the loop *should* be quick. I've also removed `python_twisted_reactor_pending_calls`, because I don't believe anyone ever looks at it, and it's a nuisance to populate. | ||||
* | Simplify GC prometheus metrics (#11723) | Richard van der Hoff | 2022-01-13 | 1 | -159/+3 |
| | | | | | Rather than hooking into the reactor loop, just add a timed task that runs every 100 ms to do the garbage collection. Part 1 of a quest to simplify the reactor monkey-patching. | ||||
* | Use auto_attribs/native type hints for attrs classes. (#11692) | Patrick Cloke | 2022-01-13 | 1 | -10/+10 |
| | |||||
* | Add type annotations to `synapse.metrics` (#10847) | Sean Quah | 2021-11-17 | 1 | -31/+70 |
| | |||||
* | Add metrics to the threadpools (#11178) | Erik Johnston | 2021-11-01 | 1 | -0/+37 |
| | |||||
* | Type hints for the remaining two files in `synapse.http`. (#11164) | David Robertson | 2021-10-28 | 1 | -5/+9 |
| | | | | | | | | | | | | | | | | | | | * Teach MyPy that the sentinel context is False This means that if `ctx: LoggingContextOrSentinel` then `bool(ctx)` narrows us to `ctx:LoggingContext`, which is a really neat find! * Annotate RequestMetrics - Raise errors for sentry if we use the sentinel context - Ensure we don't raise an error and carry on, but not recording stats - Include stack trace in the error case to lower Sean's blood pressure * Make mypy pass for synapse.http.request_metrics * Make synapse.http.connectproxyclient pass mypy Co-authored-by: reivilibre <oliverw@matrix.org> | ||||
* | Use inline type hints in various other places (in `synapse/`) (#10380) | Jonathan de Jong | 2021-07-15 | 1 | -3/+3 |
| | |||||
* | Export jemalloc stats to prometheus when used (#9882) | Erik Johnston | 2021-05-06 | 1 | -0/+1 |
| | |||||
* | Limit how often GC happens by time. (#9902) | Erik Johnston | 2021-05-05 | 1 | -2/+16 |
| | | | | | | | | | | | | | | | Synapse can be quite memory intensive, and unless care is taken to tune the GC thresholds it can end up thrashing, causing noticable performance problems for large servers. We fix this by limiting how often we GC a given generation, regardless of current counts/thresholds. This does not help with the reverse problem where the thresholds are set too high, but that should only happen in situations where they've been manually configured. Adds a `gc_min_seconds_between` config option to override the defaults. Fixes #9890. | ||||
* | Remove redundant "coding: utf-8" lines (#9786) | Jonathan de Jong | 2021-04-14 | 1 | -1/+0 |
| | | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>` | ||||
* | Don't report anything from GaugeBucketCollector metrics until data is ↵ | Andrew Morgan | 2021-04-06 | 1 | -3/+13 |
| | | | | | present (#8926) This PR modifies `GaugeBucketCollector` to only report data once it has been updated, rather than initially reporting a value of 0. Fixes zero values being reported for some metrics on startup until a background job to update the metric's value runs later. | ||||
* | Fix additional type hints from Twisted upgrade. (#9518) | Patrick Cloke | 2021-03-03 | 1 | -5/+6 |
| | |||||
* | Update black, and run auto formatting over the codebase (#9381) | Eric Eastwood | 2021-02-16 | 1 | -3/+4 |
| | | | | | | | - Update black version to the latest - Run black auto formatting over the codebase - Run autoformatting according to [`docs/code_style.md `](https://github.com/matrix-org/synapse/blob/80d6dc9783aa80886a133756028984dbf8920168/docs/code_style.md) - Update `code_style.md` docs around installing black to use the correct version | ||||
* | Add metrics for tracking 3PID /requestToken requests. (#8712) | Erik Johnston | 2020-11-13 | 1 | -0/+10 |
| | | | | | | The main use case is to see how many requests are being made, and how many are second/third/etc attempts. If there are large number of retries then that likely indicates a delivery problem. | ||||
* | Rewrite BucketCollector | Richard van der Hoff | 2020-09-30 | 1 | -47/+68 |
| | | | | | | | | | | | | This was a bit unweildy for what I wanted: in particular, I wanted to assign each measurement straight into a bucket, rather than storing an intermediate Counter which didn't do any bucketing at all. I've replaced it with something that is hopefully a bit easier to use. (I'm not entirely sure what the difference between a HistogramMetricFamily and a GaugeHistogramMetricFamily is, but given our counters can go down as well as up the latter *sounds* more accurate?) | ||||
* | Use slots in attrs classes where possible (#8296) | Patrick Cloke | 2020-09-14 | 1 | -2/+2 |
| | | | | | slots use less memory (and attribute access is faster) while slightly limiting the flexibility of the class attributes. This focuses on objects which are instantiated "often" and for short periods of time. | ||||
* | Stop sub-classing object (#8249) | Patrick Cloke | 2020-09-04 | 1 | -8/+8 |
| | |||||
* | Add some metrics for inbound and outbound federation processing times (#7755) | Erik Johnston | 2020-06-30 | 1 | -0/+6 |
| | |||||
* | Replace iteritems/itervalues/iterkeys with native versions. (#7692) | Patrick Cloke | 2020-06-15 | 1 | -4/+2 |
| | |||||
* | synapse.metrics: implement detailed memory usage reporting on PyPy (#7536) | Ivan Shapovalov | 2020-05-22 | 1 | -1/+78 |
| | | | | | | PyPy's gc.get_stats() returns an object containing detailed allocator statistics which could be beneficial to collect as metrics. Signed-off-by: Ivan Shapovalov <intelfx@intelfx.name> | ||||
* | Add prometheus metrics for the number of active pushers (#7103) | Richard van der Hoff | 2020-03-19 | 1 | -5/+7 |
| | |||||
* | Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957) | Patrick Cloke | 2020-02-21 | 1 | -1/+1 |
| | | | | Ensure good comprehension hygiene using flake8-comprehensions. | ||||
* | Fix up some typechecking (#6150) | Amber Brown | 2019-10-02 | 1 | -2/+2 |
| | | | | | | * type checking fixes * changelog | ||||
* | Fix for structured logging tests stomping on logs (#6023) | Amber Brown | 2019-09-13 | 1 | -3/+2 |
| | |||||
* | Add a build info metric to Prometheus (#6005) | Amber Brown | 2019-09-10 | 1 | -0/+12 |
| | |||||
* | Support Prometheus_client 0.4.0+ (#5636) | Amber Brown | 2019-07-18 | 1 | -0/+17 |
| | |||||
* | Don't log GC 0s at INFO (#5557) | Amber Brown | 2019-06-28 | 1 | -1/+4 |
| | |||||
* | Run Black. (#5482) | Amber Brown | 2019-06-20 | 1 | -5/+2 |
| | |||||
* | Prometheus histograms are cumalative | Erik Johnston | 2019-06-14 | 1 | -1/+0 |
| | |||||
* | fix prometheus rendering error | Amber H. Brown | 2019-06-14 | 1 | -1/+1 |
| | |||||
* | Expose statistics on extrems to prometheus (#5384) | Amber Brown | 2019-06-13 | 1 | -20/+92 |
| | |||||
* | Add metrics for number of outgoing EDUs, by type (#4695) | Richard van der Hoff | 2019-02-20 | 1 | -2/+0 |
| | |||||
* | Remove spurious comment | Erik Johnston | 2018-09-14 | 1 | -2/+0 |
| | |||||
* | Add in flight real time metrics for Measure blocks | Erik Johnston | 2018-09-14 | 1 | -1/+109 |
| | |||||
* | fix metric name | Richard van der Hoff | 2018-08-07 | 1 | -1/+1 |
| | |||||
* | more metrics for the federation and appservice senders | Richard van der Hoff | 2018-08-07 | 1 | -0/+13 |
| | |||||
* | run isort | Amber Brown | 2018-07-09 | 1 | -6/+5 |
| | |||||
* | Attempt to be more performant on PyPy (#3462) | Amber Brown | 2018-06-28 | 1 | -1/+2 |
| | |||||
* | Fix description of "python_gc_time" metric | Richard van der Hoff | 2018-06-21 | 1 | -1/+1 |
| | |||||
* | spell gauge correctly | Matthew Hodgson | 2018-06-16 | 1 | -1/+1 |
| | |||||
* | add a last seen metric (#3396) | Amber Brown | 2018-06-14 | 1 | -0/+21 |
| | |||||
* | Hopefully, fix LaterGuage error handling | Richard van der Hoff | 2018-06-04 | 1 | -3/+6 |
| | |||||
* | Run Prometheus on a different port, optionally. (#3274) | Amber Brown | 2018-05-31 | 1 | -1/+2 |
| | |||||
* | pep8 | Matthew Hodgson | 2018-05-29 | 1 | -0/+1 |
| | |||||
* | disable CPUMetrics if no /proc/self/stat | Matthew Hodgson | 2018-05-29 | 1 | -0/+3 |
| | | | | fixes build on macOS again | ||||
* | invalid syntax :( | Amber Brown | 2018-05-28 | 1 | -2/+1 |
| | |||||
* | update metrics to be in seconds | Amber Brown | 2018-05-28 | 1 | -9/+10 |
| | |||||
* | pepeightttt | Amber Brown | 2018-05-23 | 1 | -0/+1 |
| | |||||
* | add back CPU metrics | Amber Brown | 2018-05-23 | 1 | -1/+35 |
| | |||||
* | more cleanup | Amber Brown | 2018-05-22 | 1 | -3/+1 |
| | |||||
* | cleanup | Amber Brown | 2018-05-22 | 1 | -6/+22 |
| | |||||
* | fixes | Amber Brown | 2018-05-22 | 1 | -2/+10 |
| | |||||
* | Merge remote-tracking branch 'origin/develop' into 3218-official-prom | Amber Brown | 2018-05-22 | 1 | -1/+5 |
|\ | |||||
* | | replacing portions | Amber Brown | 2018-05-21 | 1 | -119/+63 |
|/ | |||||
* | Track last processed event received_ts | Erik Johnston | 2018-04-11 | 1 | -0/+13 |
| | |||||
* | Track where event stream processing have gotten up to | Erik Johnston | 2018-04-11 | 1 | -0/+13 |
| | |||||
* | Add GaugeMetric | Erik Johnston | 2018-04-11 | 1 | -1/+8 |
| | |||||
* | Don't disable GC when running on PyPy | Vincent Breitmoser | 2018-04-10 | 1 | -1/+7 |
| | | | | | | | | PyPy's incminimark GC can't be triggered manually. From what I observed there are no obvious issues with just letting it run normally. And unlike CPython, it actually returns unused RAM to the system. Signed-off-by: Vincent Breitmoser <look@my.amazin.horse> | ||||
* | Add a metric which increments when a request is received | Richard van der Hoff | 2018-03-09 | 1 | -0/+16 |
| | | | | | | It's useful to know when there are peaks in incoming requests - which isn't quite the same as there being peaks in outgoing responses, due to the time taken to handle requests. | ||||
* | Add some comments about the reactor tick time metric | Richard van der Hoff | 2018-01-19 | 1 | -1/+6 |
| | |||||
* | Rename the python-specific metrics now the docs claim that we have done | Paul "LeoNerd" Evans | 2016-11-03 | 1 | -7/+9 |
| | |||||
* | Set up the process collector during metrics __init__; that way all ↵ | Paul "LeoNerd" Evans | 2016-10-27 | 1 | -0/+3 |
| | | | | split-process workers have it | ||||
* | Allow creation of a 'subspace' within a Metrics object, returning another one | Paul "LeoNerd" Evans | 2016-10-27 | 1 | -0/+3 |
| | |||||
* | Move the process metrics collector code into its own file | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -141/+0 |
| | |||||
* | A slightly neater way to manage metric collector functions | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -2/+8 |
| | |||||
* | appease pep8 | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -3/+5 |
| | |||||
* | Also guard /proc/self/fds-related code with a suitable psuedoconstant | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -3/+5 |
| | |||||
* | Guard registration of process-wide metrics by existence of the requisite ↵ | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -45/+50 |
| | | | | /proc entries | ||||
* | Add standard process_start_time_seconds metric | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -0/+15 |
| | |||||
* | Add standard process_max_fds metric | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -0/+13 |
| | |||||
* | Add standard process_open_fds metric | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -20/+29 |
| | |||||
* | Add standard process_*_memory_bytes metrics | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -0/+8 |
| | |||||
* | Use /proc/self/stat to generate the new process_cpu_*_seconds_total metrics | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -4/+12 |
| | |||||
* | Export CPU usage metrics also under prometheus-standard metric name | Paul "LeoNerd" Evans | 2016-10-19 | 1 | -0/+15 |
| | |||||
* | Make psutil optional | Erik Johnston | 2016-08-08 | 1 | -2/+11 |
| | |||||
* | Add metrics for psutil derived memory usage | Erik Johnston | 2016-07-20 | 1 | -1/+8 |
| | |||||
* | Don't track total objects as its too expensive to calculate | Erik Johnston | 2016-06-07 | 1 | -1/+0 |
| | |||||
* | Record some more GC metrics | Erik Johnston | 2016-06-07 | 1 | -0/+5 |
| | |||||
* | Also record number of unreachable objects | Erik Johnston | 2016-06-07 | 1 | -2/+4 |
| | |||||
* | Change the way we do stats | Erik Johnston | 2016-06-07 | 1 | -7/+3 |
| | |||||
* | Merge pull request #771 from matrix-org/erikj/gc_tick | Erik Johnston | 2016-06-07 | 1 | -0/+26 |
|\ | | | | | Manually run GC on reactor tick. | ||||
| * | Count number of GC collects | Erik Johnston | 2016-05-16 | 1 | -5/+11 |
| | | |||||
| * | Add a comment | Erik Johnston | 2016-05-13 | 1 | -0/+5 |
| | | |||||
| * | Manually run GC on reactor tick. | Erik Johnston | 2016-05-09 | 1 | -0/+15 |
| | | | | | | | | This also adds a metric for amount of time spent in GC. | ||||
* | | Change CacheMetrics to be quicker | Erik Johnston | 2016-06-03 | 1 | -10/+6 |
|/ | | | | | | We change it so that each cache has an individual CacheMetric, instead of having one global CacheMetric. This means that when a cache tries to increment a counter it does not need to go through so many indirections. | ||||
* | copyrights | Matthew Hodgson | 2016-01-07 | 1 | -1/+1 |
| | |||||
* | Check that /proc/self/fd exists before listing it | Mark Haines | 2015-09-07 | 1 | -0/+4 |
| | |||||
* | The maxrss reported by getrusage is in kilobytes, not pages | Mark Haines | 2015-09-07 | 1 | -4/+3 |
| | |||||
* | Also check for presence of 'threadCallQueue' in reactor | Erik Johnston | 2015-08-18 | 1 | -1/+8 |
| | |||||
* | Use more helpful variable names | Erik Johnston | 2015-08-18 | 1 | -3/+3 |
| | |||||
* | Fix pending_calls metric to not lie | Erik Johnston | 2015-08-14 | 1 | -3/+18 |
| | |||||
* | Don't time getDelayedCalls | Erik Johnston | 2015-08-13 | 1 | -1/+1 |
| | |||||
* | Add some metrics about the reactor | Erik Johnston | 2015-08-13 | 1 | -0/+29 |
| | |||||
* | Appease pep8 | Paul "LeoNerd" Evans | 2015-04-01 | 1 | -0/+1 |
| | |||||
* | Report process open filehandles in metrics | Paul "LeoNerd" Evans | 2015-04-01 | 1 | -0/+34 |
| | |||||
* | Appease pyflakes | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -1/+1 |
| | |||||
* | Appease pep8 | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -1/+2 |
| | |||||
* | Replace the @metrics.counted annotations in federation with ↵ | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -17/+0 |
| | | | | specifically-written counters and distributions | ||||
* | Don't forbid '_' in metric basenames any more, to allow things like foo_time | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -5/+0 |
| | |||||
* | Rename TimerMetric to DistributionMetric; as it could count more than just time | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -3/+5 |
| | |||||
* | Remember to emit final linefeed from /metrics page, or Prometheus gets upset | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -0/+2 |
| | |||||
* | Use _ instead of . as a metric namespacing separator, for Prometheus | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -3/+11 |
| | |||||
* | Have all @metrics.counted use a single metric name vectored on the method ↵ | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -2/+9 |
| | | | | name, rather than a brand new scalar counter per counted method | ||||
* | Provide some process resource usage metrics | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -0/+27 |
| | |||||
* | Neater register_* methods on overall Metrics container | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -22/+12 |
| | |||||
* | Rename CacheCounterMetric to just CacheMetric; add a CallbackMetric ↵ | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -3/+3 |
| | | | | component to give the size of the cache | ||||
* | Ensure that exceptions while rendering individual metrics don't stop others ↵ | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -1/+10 |
| | | | | from being rendered anyway - especially useful for CallbackMetric | ||||
* | Initial attempt at a scalar callback-based metric to give instantaneous ↵ | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -1/+10 |
| | | | | snapshot gauges | ||||
* | Create the concept of a cachecounter metric; generating two counters ↵ | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -1/+10 |
| | | | | specific to caches | ||||
* | An initial implementation of a 'metrics' instance, similar to a 'logger' for ↵ | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -0/+69 |
keeping counter stats on method calls |