summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-02-08 23:43:51 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-02-08 23:43:51 +0900
commitf4e28983a1355caf842825ec71037b956b7b98ac (patch)
treec8f84fa2bfef2eab32193e515928e634f10dba3f
parentUpdate CHANGELOG.md (diff)
downloadmisskey-f4e28983a1355caf842825ec71037b956b7b98ac.tar.gz
misskey-f4e28983a1355caf842825ec71037b956b7b98ac.tar.bz2
misskey-f4e28983a1355caf842825ec71037b956b7b98ac.zip
feat: improve federation chart
-rw-r--r--packages/backend/migration/1644331238153-chart-v13.js19
-rw-r--r--packages/backend/src/queue/processors/deliver.ts3
-rw-r--r--packages/backend/src/services/chart/charts/entities/federation.ts1
-rw-r--r--packages/backend/src/services/chart/charts/federation.ts6
-rw-r--r--packages/client/src/components/chart.vue13
5 files changed, 37 insertions, 5 deletions
diff --git a/packages/backend/migration/1644331238153-chart-v13.js b/packages/backend/migration/1644331238153-chart-v13.js
new file mode 100644
index 0000000000..ed36659b34
--- /dev/null
+++ b/packages/backend/migration/1644331238153-chart-v13.js
@@ -0,0 +1,19 @@
+const { MigrationInterface, QueryRunner } = require("typeorm");
+
+module.exports = class chartV131644331238153 {
+ name = 'chartV131644331238153'
+
+ async up(queryRunner) {
+ await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique_temp___stalled" character varying array NOT NULL DEFAULT '{}'`);
+ await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___stalled" smallint NOT NULL DEFAULT '0'`);
+ await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "unique_temp___stalled" character varying array NOT NULL DEFAULT '{}'`);
+ await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___stalled" smallint NOT NULL DEFAULT '0'`);
+ }
+
+ async down(queryRunner) {
+ await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___stalled"`);
+ await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "unique_temp___stalled"`);
+ await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___stalled"`);
+ await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique_temp___stalled"`);
+ }
+}
diff --git a/packages/backend/src/queue/processors/deliver.ts b/packages/backend/src/queue/processors/deliver.ts
index e29f991307..bd91dfc3b5 100644
--- a/packages/backend/src/queue/processors/deliver.ts
+++ b/packages/backend/src/queue/processors/deliver.ts
@@ -62,7 +62,7 @@ export default async (job: Bull.Job<DeliverJobData>) => {
instanceChart.requestSent(i.host, true);
apRequestChart.deliverSucc();
- federationChart.deliverd(i.host);
+ federationChart.deliverd(i.host, true);
});
return 'Success';
@@ -77,6 +77,7 @@ export default async (job: Bull.Job<DeliverJobData>) => {
instanceChart.requestSent(i.host, false);
apRequestChart.deliverFail();
+ federationChart.deliverd(i.host, false);
});
if (res instanceof StatusError) {
diff --git a/packages/backend/src/services/chart/charts/entities/federation.ts b/packages/backend/src/services/chart/charts/entities/federation.ts
index 5a76c4918c..0c8c20991d 100644
--- a/packages/backend/src/services/chart/charts/entities/federation.ts
+++ b/packages/backend/src/services/chart/charts/entities/federation.ts
@@ -8,6 +8,7 @@ export const schema = {
'instance.dec': { range: 'small' },
'deliveredInstances': { uniqueIncrement: true, range: 'small' },
'inboxInstances': { uniqueIncrement: true, range: 'small' },
+ 'stalled': { uniqueIncrement: true, range: 'small' },
} as const;
export const entity = Chart.schemaToEntity(name, schema);
diff --git a/packages/backend/src/services/chart/charts/federation.ts b/packages/backend/src/services/chart/charts/federation.ts
index 3aa448e66f..19c75c98ad 100644
--- a/packages/backend/src/services/chart/charts/federation.ts
+++ b/packages/backend/src/services/chart/charts/federation.ts
@@ -33,9 +33,11 @@ export default class FederationChart extends Chart<typeof schema> {
}
@autobind
- public async deliverd(host: string): Promise<void> {
- await this.commit({
+ public async deliverd(host: string, succeeded: boolean): Promise<void> {
+ await this.commit(succeeded ? {
'deliveredInstances': [host],
+ } : {
+ 'stalled': [host],
});
}
diff --git a/packages/client/src/components/chart.vue b/packages/client/src/components/chart.vue
index da7d378bd9..f297db7e13 100644
--- a/packages/client/src/components/chart.vue
+++ b/packages/client/src/components/chart.vue
@@ -372,18 +372,27 @@ export default defineComponent({
name: 'Instances total',
type: 'area',
data: format(raw.instance.total),
+ color: '#888888',
}, {
name: 'Instances inc/dec',
type: 'area',
data: format(sum(raw.instance.inc, negate(raw.instance.dec))),
+ color: colors.purple,
+ }, {
+ name: 'Inbox instances',
+ type: 'area',
+ data: format(raw.inboxInstances),
+ color: colors.blue,
}, {
name: 'Delivered instances',
type: 'area',
data: format(raw.deliveredInstances),
+ color: colors.green,
}, {
- name: 'Inbox instances',
+ name: 'Stalled instances',
type: 'area',
- data: format(raw.inboxInstances),
+ data: format(raw.stalled),
+ color: colors.red,
}],
};
};