예제 #1
0
    def get(self, request, project):

        if not features.has("organizations:metrics",
                            project.organization,
                            actor=request.user):
            return Response(status=404)

        metrics = DATA_SOURCE.get_metrics(project)
        return Response(metrics, status=200)
예제 #2
0
    def get(self, request, project, metric_name):

        if not features.has("organizations:metrics",
                            project.organization,
                            actor=request.user):
            return Response(status=404)

        try:
            metric = DATA_SOURCE.get_single_metric(project, metric_name)
        except InvalidParams:
            raise ResourceDoesNotExist(detail=f"metric '{metric_name}'")

        return Response(metric, status=200)
예제 #3
0
    def get(self, request, project):

        if not features.has("organizations:metrics",
                            project.organization,
                            actor=request.user):
            return Response(status=404)

        try:
            query = QueryDefinition(request.GET, allow_minute_resolution=False)
            data = DATA_SOURCE.get_series(query)
        except (InvalidField, InvalidParams) as exc:
            raise (ParseError(detail=str(exc)))

        return Response(data, status=200)
예제 #4
0
    def get(self, request, project):

        if not features.has("organizations:metrics",
                            project.organization,
                            actor=request.user):
            return Response(status=404)

        metric_names = request.GET.getlist("metric") or None

        if not features.has("organizations:metrics",
                            project.organization,
                            actor=request.user):
            return Response(status=404)

        try:
            tag_names = DATA_SOURCE.get_tag_names(project, metric_names)
        except InvalidParams as exc:
            raise (ParseError(detail=str(exc)))

        return Response(tag_names, status=200)
예제 #5
0
    def get(self, request, project, tag_name):

        if not features.has("organizations:metrics",
                            project.organization,
                            actor=request.user):
            return Response(status=404)

        metric_names = request.GET.getlist("metric") or None

        try:
            tag_values = DATA_SOURCE.get_tag_values(project, tag_name,
                                                    metric_names)
        except InvalidParams as exc:
            msg = str(exc)
            # TODO: Use separate error type once we have real data
            if "Unknown tag" in msg:
                raise ResourceDoesNotExist(f"tag '{tag_name}'")
            else:
                raise ParseError(msg)

        return Response(tag_values, status=200)