| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The endpoint is admin-only.
Closes #3298
|
|
|
|
| |
Closes #3362
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add new app couch_prometheus
This will be a new app add a _prometheus endpoint which will
return metrics information that adheres to the format described at
https://prometheus.io/.
Initial implementation of new _prometheus endpoint. A gen_server
waits for scraping calls while polling couch_stats:fetch and
other system info. The return value is constructed to adhere to
prometheus format and returned as text/plain. The format code
was originally written by @davisp.
We add an option to spawn a new mochiweb_http server to allow for an
additional port for scraping which does not require authentication.
The default ports are 17986, 27986, 37986 across 3 nodes.
make release
Co-authored-by: Joan Touzet <wohali@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Bring back ppc64le builds
s390x seems to fail, possibly related to mozjs60 so skip it for now. Also
FoundationDB doesn't build on either architecture.
https://github.com/apache/couchdb/issues/3660
https://github.com/apache/couchdb/issues/3454#issuecomment-876738187
|
| |
|
|
|
|
|
|
|
|
| |
With the move from using a forked ibrowse to upstream [1], the
ibrowse options for socks5 proxy settings all changed to a `socks5_`
prefix.
[1] https://github.com/apache/couchdb/pull/3551
|
|\
| |
| | |
Normalize some config options
|
|/ |
|
|
|
|
|
|
|
|
|
| |
These system db defaults were left unchanged when this code was
imported from Cloudant. This updates them to CouchDB defaults, by
using existing functions in the appropriate application and module.
h/t @chewbranca for discovering the issue, and also suggesting
a better way to obtain these config values.
|
|
|
|
|
|
|
|
|
|
| |
In their current form, some of these tests rely on configuration props
set with specific values in rel/overlay/etc/default.ini, which makes
them prone to breakage when those values change, or when tests run in
non-default configuration.
This change deletes all config settings in the relevant sections under
test, and then adds those under test back explicitly.
|
|
|
|
|
|
|
|
|
| |
Previously, in 4.4.2-4 ibrowse upstream rebase also included the commit which
unconditionally unquoted userinfo credentials. Since we know have a better way
of handing basic auth creds bump ibrowse with a rebase which doesn't include
that commit.
This is the 3.x port of https://github.com/apache/couchdb/pull/3612
|
|
|
|
|
|
|
| |
* mochiweb : upgrade crypto functions to support OTP 23+
* ibrowse : update time functions and fix flaky unit test
Backport of https://github.com/apache/couchdb/pull/3610
|
|
|
|
|
|
|
|
|
| |
It doesn't really work as we have functionality relying on 20.0+
features. One particular instance is in [1].
Issue: https://github.com/apache/couchdb/issues/3571
[1] https://github.com/apache/couchdb/blob/ce596c65d9d7f0bc5d9937bcaf6253b343015690/src/couch/src/couch_emsort.erl#L363-L366
|
|
|
|
| |
This is a backport of https://github.com/apache/couchdb/commit/e349128d21212e9ab9ca35e8a72c581b9b77ebb1 from main.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, there were two ways to pass in basic auth credentials for
endpoints -- using URL's userinfo part and encoding the them in an
`"Authorization": "basic ..."` header. Neither one is ideal for these reasons:
* Passwords in userinfo doesn't allow using ":", "@" and other characters.
However, even after switching to always unquoting them like we did recently
[1], would break authentication for usernames or passwords previously
containing "+" or "%HH" patterns, as "+" might now be decoded to a " ".
* Base64 encoded headers need an extra step to encode them. Also, quite often
these encoded headers are confused as being "encrypted" and shared in a
clear channel.
To improve this, revert the recent commit to unquote URL userinfo parts to
restore backwards compatibility, and introduce a way to pass in basic auth
credentials in the "auth" object. The "auth" object was already added a while
back to allow authentication plugins to store their credentials in it. The
format is:
```
"source": {
"url": "https://host/db",
"auth": {
"basic": {
"username":"myuser",
"password":"mypassword"
}
}
}
```
{"auth" : "basic" : {...}} object is checked first, and if credentials are
provided, they will be used. If they are not then userinfo and basic auth
header will be parsed.
Internally, there was a good amount duplication related to parsing credentials
from userinfo and headers in replication ID generation logic and in the auth
session plugin. As a cleanup, consolidate that logic in the
`couch_replicator_utils` module.
[1] https://github.com/apache/couchdb/commit/f672b911db19981a81d7fc6ce8ac33b150234fd7
|
| |
|
|
|
|
|
|
| |
Upgrade random -> rand
https://github.com/apache/couchdb-hyper/releases/tag/CouchDB-2.2.0-7
|
| |
|
|
|
|
|
|
|
|
|
| |
The main fix is to switch crypto functions to use the new versions for
22+ while keeping Erlang 20 still working.
```
crypto:hmac(Alg, Key, Message) -> crypto:mac(hmac, Alg, Key, Message)
```
|
|
|
|
|
|
|
| |
Set the `worker_trap_exits = false` setting to ensure our replication worker
pool properly cleans up worker processes.
Ref: https://github.com/apache/couchdb/pull/3208
|
| |
|
| |
|
| |
|
|
|
|
|
| |
`fabric.get_doc_info/3` requires three arguments, but this line was
only using one.
|
|\
| |
| | |
Import weatherreport
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
In default CouchDB, search is disabled by default, so a failure to
connect to clouseau should only be a warning.
|
| |
| |
| |
| |
| | |
weatherreport previously relied on Cloudant's IOQ implementation.
This adds support for the default IOQ so that it works with either.
|
| |
| |
| |
| | |
Port fork of custom `recon` functions for checking process calls.
|
| |\
|/ /
| |
| | |
weatherreport
|
| |
| |
| |
| | |
BugzID: 45855
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit downgrades messages about process call counts to
notice level.
The previous level of warning was inappropriate for many
processes as it really just indicated normal operation of the
system.
Until this check is made a bit smarter, with custom thresholds
per MFA, we will log at nothing more severe than notice so that
we don't confuse operators into thinking something is wrong.
BugzID: 37593
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Check the absolute statistics obtained by recon:node_stats/4
over a one second period. The values are sampled ten times and
the mean is returned.
For run_queue and process_count the mean is compared to
hard-coded thresholds which determine whether a warning or
info message is returned. For all other statistics an info
message is always returned.
BugzID: 32877
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit adds a check for the number of pending internal
replication jobs on a node. A large number of pending internal
replication jobs indicates that internal replication is falling
behind. A warning message is returned if the number of jobs
exceeds a hard-coded threshold, otherwise an info message is
returned.
BugzID: 32872
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Custodian will output a message if there are one or more
conflicting revisions for a shard map. Previously
weatherreport_check_custodian failed to match that message which
caused the check to fail.
This commit adds new function clauses to report_to_message/1 and
format/1 so that the conflict messages are output to the console
at the warning log level.
BugzID: 34157
|
| | |
|
| |
| |
| |
| |
| |
| | |
Unless it is explicitly required for a check, avoid returning
the node name in diagnostic messages. The node name is added by
the logging code so including it in the messages is not necessary.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The initial design of Riaknostic (and hence WeatherReport) was
that checks ran in the script and made RPC calls to the local
cluster node when needed. Due to a requirement to allow checks
to run on multiple cluster nodes without guarantees of SSH
connectivity, the design has changed such that each check is
now run entirely on the cluster node.
This means it is no longer necessary to use
weatherreport_node:local_command/3 to interact with the cluster,
the calls can just be made directly.
This commit removes the redundant calls to
weatherreport_node:local_command/3 which makes the intent of the
code a bit clearer.
BugzID: 34016
|
| | |
|