feat: improve federation chart

This commit is contained in:
syuilo 2022-02-08 23:43:51 +09:00
parent 7d494f1ddf
commit f4e28983a1
5 changed files with 39 additions and 7 deletions

View file

@ -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"`);
}
}

View file

@ -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) {

View file

@ -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);

View file

@ -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],
});
}

View file

@ -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))),
}, {
name: 'Delivered instances',
type: 'area',
data: format(raw.deliveredInstances),
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: 'Stalled instances',
type: 'area',
data: format(raw.stalled),
color: colors.red,
}],
};
};