Группировка с часовым - PullRequest
1 голос
/ 28 июня 2019

Я хочу сгруппировать исключение с помощью Sentry, исключение поступает с разных серверов, но я хочу, чтобы все исключения по типу вместе, например, все NPE были сгруппированы.Я знаю, что вы можете расширить EventBuilderHelper, и именно так обстоит дело с группировкой часового, но Java-сервер не предоставляет функций для отправки события с отпечатками пальцев метода, типа ошибки и т. Д., Как и другие SDK, такие как этот пример в docs.sentry.io

function makeRequest(method, path, options) {
    return fetch(method, path, options).catch(err => {
        Sentry.withScope(scope => {
          // group errors together based on their request and response
          scope.setFingerprint([method, path, err.statusCode]);
          Sentry.captureException(err);
        });
    });
}

это то, что я пытаюсь сделать, но в этой области у меня нет знаний о методе, ошибке и т. Д.

package com.test;

import io.sentry.SentryClient;
import io.sentry.event.EventBuilder;
import io.sentry.event.helper.ContextBuilderHelper;

public class FingerprintEventBuilderHelper extends ContextBuilderHelper {

    private static final String EXCEPTION_TYPE = "exception_type";

    public FingerprintEventBuilderHelper(SentryClient sentryClient) {
        super(sentryClient);
    }

    @Override
    public void helpBuildingEvent(EventBuilder eventBuilder) {
        super.helpBuildingEvent(eventBuilder);
        //Get the exception type
        String exceptionType =
        if (exceptionType != null) {
            eventBuilder.withTag(EXCEPTION_TYPE, exceptionType);
        }
        //Get method information and params
        if (paramX != null) {
            eventBuilder.withTag("PARAM", paramX);
        }
    }
}

у json, отправляемого на сервер, есть некоторыеинформация об исключении, но я не знаю, как это получить

...
    "release": null,
    "dist": null,
    "platform": "java",
    "culprit": "com.sun.ejb.containers.BaseContainer in checkExceptionClientTx",
    "message": "Task execution failed",
    "datetime": "2019-06-26T14:13:29.000000Z",
    "time_spent": null,
    "tags": [
        ["logger", "com.test.TestService"],
        ["server_name", "localhost"],
        ["level", "error"]
    ],
    "errors": [],
    "extra": {
        "Sentry-Threadname": "MainThread",
        "rid": "5ff37e943-f4b4-4hc9-870b-4f8c4d18cf84"
    },
    "fingerprint": ["{{ default }}"],
    "key_id": 3,
    "metadata": {
        "type": "NullPointerException",
        "value": ""
    },
...
...