Commit Graph

2728 Commits

Author SHA1 Message Date
Hector Sanjuan
0787ffbe36 PinInfo type: include Allocations, Origins, Metadata
This will facilitate building outputs for the Pinning Services API, saving a
round trip to query the cluster State, since all the needed information
already comes from the PinTracker, which has already accessed the state.

Since the pintracker already included a state attribute (Name), we are simply
going down that path.
2022-02-02 00:52:38 +01:00
Hector Sanjuan
ea624d50e4 common api: automatically set NotFound errors 2022-02-02 00:44:27 +01:00
Hector Sanjuan
d4073f9cfa cluster: add PeersWithFilter option that only requests info for certain peer IDs
(currently will be unused)
2022-02-02 00:43:00 +01:00
Hector Sanjuan
a5eb3f2db0 api: Support a custom error function for custom error messages 2022-02-02 00:43:00 +01:00
dependabot[bot]
8786588ac1
Bump github.com/ipfs/go-ds-crdt from 0.2.4 to 0.3.0
Bumps [github.com/ipfs/go-ds-crdt](https://github.com/ipfs/go-ds-crdt) from 0.2.4 to 0.3.0.
- [Release notes](https://github.com/ipfs/go-ds-crdt/releases)
- [Commits](https://github.com/ipfs/go-ds-crdt/compare/v0.2.4...v0.3.0)

---
updated-dependencies:
- dependency-name: github.com/ipfs/go-ds-crdt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 23:41:52 +00:00
Hector Sanjuan
e7813e249c
Merge pull request #1561 from ipfs/update-go-ds-crdt-2
Update go-ds-crdt and add RepairInterval option
2022-02-02 00:41:01 +01:00
Hector Sanjuan
223b54cab6 Restapi: add "cids" query param to /pins
This allows to specifically request status for several CIDs as
provided in the "cids" query parameter, instead of request status for
all CIDs.

In this case, the filter is ignored.
2022-02-02 00:39:09 +01:00
Hector Sanjuan
a64a1c2b6e crdt: add RepairInterval option 2022-02-01 23:29:40 +01:00
Hector Sanjuan
881266a1a0 Update go-ds-crdt
The new version supports auto-repair of the datastore.

Fixes #1007.
2022-02-01 23:16:50 +01:00
Hector Sanjuan
67ab6aa0f8
Merge pull request #1560 from ipfs/feat/local-allocate
Adder: adding with --local forcefully allocates the local peer to the pin
2022-02-01 22:43:02 +01:00
Hector Sanjuan
7e389d551c Add test about local allocation 2022-02-01 22:29:54 +01:00
Hector Sanjuan
07b4971277 Adder: adding with --local forcefully allocates the local peer to the pin
It is not good to add something locally only to pin it somewhere else:
  * The locally used space is not GCed automatically or anything and is lost
  * Pay the penalty of having to copy things somewhere else
2022-02-01 20:38:41 +01:00
Hector Sanjuan
7071f6777b
Merge pull request #1543 from ipfs/fix/warning-msg
Remove warning message about informer metrics
2022-02-01 14:37:00 +01:00
Hector Sanjuan
2c204968b8
Merge pull request #1559 from ipfs/fix/repo-stat-hammering
Fix: repo/stat gets hammered on busy cluster peers
2022-02-01 14:36:27 +01:00
Hector Sanjuan
acde3f16d0 Fix: repo/stat gets hammered on busy cluster peers
Given that every pin and block/put writes something to IPFS and thus increases
the repo size, a while ago we added a check to let the IPFS connector directly
trigger the sending of metrics every 10 of such requests. This was meant to
update the metrics more often so that balancing happened more granularly
(particularly the freespace one).

In practice, on a cluster that receives several hundreds of pin/adds
operations in a few seconds, this is just bad.

So:

* We disable by default the whole thing.
* We add a new InformerTriggerInterval configuration option to enable the thing.
* Fix a bug that made this always call the first informer, which may not
  have been the freespace one).
2022-02-01 01:34:17 +01:00
Hector Sanjuan
20f49c1b51
Merge pull request #1556 from ipfs/fix/1554-tracker-status-ipfs-node-id
Pintracker improvements
2022-02-01 01:31:08 +01:00
Hector Sanjuan
60c6b16ac6 pintracker: Remove unnecessary locking 2022-01-31 21:04:11 +01:00
Hector Sanjuan
5e89c0ba41 Pintracker: set Name in operation tracker. Fixes #1212. 2022-01-31 21:04:11 +01:00
Hector Sanjuan
809b7fbda5 Pintracker: add IPFS ID to Pin Information
Fixes #1554
Fixes: peer names unset for remote peers

This adds an IPFS field to pin status information (PinInfoShort).

It has not been easy to add this, given that the IPFS ID is something that
comes from outside of cluster (unlike the peer name). After several tries I
have settled in the following things:

- Use the ping metric to send out peer names and IPFS IDs to the peers in the
  cluster.
- Cache the latest known IPFS ID (if IPFS dies we should still be setting
  the ID).
- Provide an RPC method for the Pintracker to obtain IPFS ID from the cache.
- Given we now know information for peernames and IPFS IDs from other peers,
  we can use that information even if the requests to them error or we are not
  contacting (i.e. peers allocated as remote are not queried for status). We can
  use the information from the last received ping metric.
- This means we should keep metrics around even if peers go away, at least for
  a while rather than deleting them as soon as we detect that they have expired.

Puting it all together we now have a system to gossip peer information around on top
of the ping metrics.
2022-01-31 17:53:09 +01:00
Hector Sanjuan
000dccc1cc Monitor: do not clean up metrics immediately after an alert 2022-01-31 17:53:09 +01:00
Hector Sanjuan
d4591b8442 Monitor: remove accrual detection. Add LatestForPeer method.
Fixes #939
2022-01-31 17:53:09 +01:00
dependabot[bot]
c331026ca5
Bump github.com/ipfs/go-ipfs-config from 0.18.0 to 0.19.0
Bumps [github.com/ipfs/go-ipfs-config](https://github.com/ipfs/go-ipfs-config) from 0.18.0 to 0.19.0.
- [Release notes](https://github.com/ipfs/go-ipfs-config/releases)
- [Commits](https://github.com/ipfs/go-ipfs-config/compare/v0.18.0...v0.19.0)

---
updated-dependencies:
- dependency-name: github.com/ipfs/go-ipfs-config
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 11:07:15 +00:00
dependabot[bot]
36f85a96f8
Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.1
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.11.0 to 1.12.1.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.11.0...v1.12.1)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-31 11:06:44 +00:00
Hector Sanjuan
ed348f29c1
state: abort list operation on context cancellation (#1555)
Stopping cluster while listing pins seems to hang until the operation has finished.
2022-01-29 00:06:08 +01:00
dependabot[bot]
fa7d7ded12
Bump github.com/ipfs/go-ipfs-files from 0.0.9 to 0.1.0
Bumps [github.com/ipfs/go-ipfs-files](https://github.com/ipfs/go-ipfs-files) from 0.0.9 to 0.1.0.
- [Release notes](https://github.com/ipfs/go-ipfs-files/releases)
- [Commits](https://github.com/ipfs/go-ipfs-files/compare/v0.0.9...v0.1.0)

---
updated-dependencies:
- dependency-name: github.com/ipfs/go-ipfs-files
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-24 11:06:22 +00:00
Hector Sanjuan
4b0983b75c Remove warning message about informer metrics 2022-01-15 14:26:39 +01:00
Hector Sanjuan
dca8923aaa
Set development version v0.14.4-next 2022-01-11 19:13:39 +01:00
Hector Sanjuan
d80a8b42c8
Release v0.14.4 2022-01-11 19:13:28 +01:00
Hector Sanjuan
4be8c55875
Changelog for v0.14.4 (#1542)
* Changelog for v0.14.4
2022-01-11 19:13:12 +01:00
Hector Sanjuan
00fd9066b2
Merge pull request #1541 from ipfs/update-go-ds-crdt
Update go-ds-crdt
2022-01-11 18:19:59 +01:00
Hector Sanjuan
f2ccf7a772 Update go-ds-crdt 2022-01-11 18:08:20 +01:00
Hector Sanjuan
a93886aeee
Merge pull request #1540 from ipfs/dependency-upgrades
Dependency upgrades
2022-01-11 17:11:13 +01:00
Hector Sanjuan
acbe12b034
Merge pull request #1539 from ipfs/dependabot/go_modules/dependency-upgrades/github.com/hashicorp/go-hclog-1.1.0
Bump github.com/hashicorp/go-hclog from 1.0.0 to 1.1.0
2022-01-11 17:09:49 +01:00
Hector Sanjuan
af0cf8b106
Merge pull request #1538 from ipfs/pintracker/recover-speedup
pintracker: RecoverAll should only return status for recovered items
2022-01-11 17:09:20 +01:00
Hector Sanjuan
862f4b515f Update protobuf compiler and generated files 2022-01-11 16:47:45 +01:00
dependabot[bot]
aa50177cc4
Bump github.com/hashicorp/go-hclog from 1.0.0 to 1.1.0
Bumps [github.com/hashicorp/go-hclog](https://github.com/hashicorp/go-hclog) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/hashicorp/go-hclog/releases)
- [Commits](https://github.com/hashicorp/go-hclog/compare/v1.0...v1.1.0)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-hclog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-11 15:33:10 +00:00
Hector Sanjuan
5abb804362 Update go-libp2p 2022-01-11 16:31:55 +01:00
Hector Sanjuan
592ce450ce pintracker: RecoverAll should only return status for recovered items
We call RecoverAll regularly and I noticed it was way slower than it should be.

After all, it should just loop the pinset and enqueued items that are
unexpectedly unpinned or in pin error.

However, at some point we decided that RecoverAll would return information for
all pins, regardless of whether they were recovered or not. This ends up
resulting in a separate Status call for every pin that is already pinned, and
this call hits IPFS. This is pretty bad with big pinsets.

This commit fixes that, we return no state information for pins that are not
touched.
2022-01-11 16:22:03 +01:00
Hector Sanjuan
dbb68c2a80
Merge pull request #1535 from ipfs/dependabot/go_modules/dependency-upgrades/github.com/rs/cors-1.8.2
Bump github.com/rs/cors from 1.8.0 to 1.8.2
2022-01-10 23:04:10 +01:00
Hector Sanjuan
3537c8ebd5
Merge pull request #1527 from ipfs/dependabot/go_modules/dependency-upgrades/github.com/ipfs/go-path-0.2.1
Bump github.com/ipfs/go-path from 0.1.2 to 0.2.1
2022-01-10 23:03:52 +01:00
dependabot[bot]
261a87e205
Bump github.com/ipfs/go-path from 0.1.2 to 0.2.1
Bumps [github.com/ipfs/go-path](https://github.com/ipfs/go-path) from 0.1.2 to 0.2.1.
- [Release notes](https://github.com/ipfs/go-path/releases)
- [Commits](https://github.com/ipfs/go-path/compare/v0.1.2...v0.2.1)

---
updated-dependencies:
- dependency-name: github.com/ipfs/go-path
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 14:52:07 +00:00
Hector Sanjuan
97a58adc2b
Merge pull request #1526 from ipfs/dependabot/go_modules/dependency-upgrades/github.com/ipfs/go-ipfs-api-0.3.0
Bump github.com/ipfs/go-ipfs-api from 0.2.0 to 0.3.0
2022-01-10 15:51:42 +01:00
dependabot[bot]
0b531d4f5e
Bump github.com/rs/cors from 1.8.0 to 1.8.2
Bumps [github.com/rs/cors](https://github.com/rs/cors) from 1.8.0 to 1.8.2.
- [Release notes](https://github.com/rs/cors/releases)
- [Commits](https://github.com/rs/cors/compare/v1.8.0...v1.8.2)

---
updated-dependencies:
- dependency-name: github.com/rs/cors
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 14:51:31 +00:00
Hector Sanjuan
8e3c6f5a75
Merge pull request #1530 from ipfs/dependabot/go_modules/dependency-upgrades/github.com/ipfs/go-log/v2-2.5.0
Bump github.com/ipfs/go-log/v2 from 2.3.0 to 2.5.0
2022-01-10 15:51:02 +01:00
Hector Sanjuan
31413c7e5d
Merge pull request #1531 from ipfs/dependabot/go_modules/dependency-upgrades/github.com/ipfs/go-ipld-cbor-0.0.6
Bump github.com/ipfs/go-ipld-cbor from 0.0.5 to 0.0.6
2022-01-10 15:50:45 +01:00
Hector Sanjuan
45553bcf87
Merge pull request #1533 from ipfs/dependabot/go_modules/dependency-upgrades/github.com/ipld/go-car-0.3.3
Bump github.com/ipld/go-car from 0.3.2 to 0.3.3
2022-01-10 15:50:33 +01:00
Hector Sanjuan
7fa8d967e8
Merge pull request #1532 from ipfs/dependabot/go_modules/dependency-upgrades/github.com/ipfs/go-ipfs-pinner-0.2.1
Bump github.com/ipfs/go-ipfs-pinner from 0.1.2 to 0.2.1
2022-01-10 15:50:22 +01:00
Hector Sanjuan
615a6802c3
Merge pull request #1536 from ipfs/dependabot/go_modules/dependency-upgrades/github.com/hashicorp/go-hclog-1.0.0
Bump github.com/hashicorp/go-hclog from 0.16.2 to 1.0.0
2022-01-10 15:49:21 +01:00
Hector Sanjuan
a2425fc81b
Merge pull request #1537 from ipfs/fix-status-unexpectedly-unpinned
pintracker: set status unexpectedly_unpinned correctly on Status()
2022-01-10 15:49:04 +01:00
Hector Sanjuan
789b633366 pintracker: set status unexpectedly_unpinned correctly on Status()
This must has been an oversight. We added a special unexpectedly_unpinned
status so that we could just return things from the operation tracker when
filtering by pin_error. unexpectedly_unpinned are things that we have no
operation for but are unpinned on ipfs.

Status however still returned a pin_error state for these, even though,
StatusAll would not show them when filtering with pin_error, and would show
them as unexpectedly_unpinned otherwise.

Since Recover correctly repins pin_error and unexpectedly_unpinned, this
change has no further consequences.
2022-01-10 13:04:21 +01:00