File: README.md

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (74 lines) | stat: -rw-r--r-- 3,283 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# wikimedia/objectcache

## Statistics

Sent to StatsD under MediaWiki's namespace.

### WANObjectCache

The default WANObjectCache provided by MediaWikiServices disables these
statistics in entry points where MW_ENTRY_POINT is 'cli'.

#### `wanobjectcache.{kClass}.{cache_action_and_result}`

Upon cache access via `WANObjectCache::getWithSetCallback()`, this measures the total time spent
in this method from start to end for all cases, except process-cache hits.

See also `wanobjectcache.{kClass}.regen_walltime`, which, during misses/renews, measures just the
portion of time spent in the callback to regenerate the value.

* Type: Measure (in milliseconds).
* Variable `kClass`: The first part of your cache key.
* Variable `result`: One of:
  * `"hit.good"`: A non-expired value was returned (and call did not get chosen
    for pre-emptive refresh).
  * `"hit.refresh"`: A non-expired value was returned (and call was chosen for
    a pre-emptive refresh, and an async refresh was scheduled).
  * `"hit.volatile"`: A value was found that was generated and stored less than 0.1s ago,
    and returned as-is despite appearing to also be expired already. This amount of time is
    considered negligible in terms of clock accuracy, and by random chance we usually decide
    to treat these as a cache hit (see `RECENT_SET_HIGH_MS`).
  * `"hit.stale"`: An expired value was found, but we are within the allowed stale period
    specified by a `lockTSE` option, and the current request did not get the regeneration lock.
    The stale value is returned as-is.
  * `"miss.compute"`: A new value was computed by the callback and returned.
    No non-expired value was found, and if this key needed a regeneration lock, we got the lock.
  * `"miss.busy"`: A busy value was produced by a `busyValue` callback and returned.
    No non-expired value was found, and we tried to use a regeneration lock (per the `busyValue`
    option), but the current request did not get the lock.
  * `"renew.compute"`: Artificial demand from an async refresh, led to a new value being
    computed by the callback. These are like `"miss.compute"`, but in response to `"hit.refresh"`.
  * `"renew.busy"`: Artificial demand from an async refresh failed to produce a value.
    The key used the `busyValue` option, and could not get a regeneration lock.

#### `wanobjectcache.{kClass}.regen_walltime`

Upon cache update due to a cache miss or async refresh, this measures the time spent in
the regeneration callback when computing a new value.

* Type: Measure (in milliseconds).
* Variable `kClass`: The first part of your cache key.

#### `wanobjectcache.{kClass}.ck_touch.{result}`

Call counter from `WANObjectCache::touchCheckKey()`.

* Type: Counter.
* Variable `kClass`: The first part of your cache key.
* Variable `result`: One of `"ok"` or `"error"`.

#### `wanobjectcache.{kClass}.ck_reset.{result}`

Call counter from `WANObjectCache::resetCheckKey()`.

* Type: Counter.
* Variable `kClass`: The first part of your cache key.
* Variable `result`: One of `"ok"` or `"error"`.

#### `wanobjectcache.{kClass}.delete.{result}`

Call counter from `WANObjectCache::delete()`.

* Type: Counter.
* Variable `kClass`: The first part of your cache key.
* Variable `result`: One of `"ok"` or `"error"`.