def call()

in elasticapm/instrumentation/packages/graphql.py [0:0]


    def call(self, module, method, wrapped, instance, args, kwargs):
        name = "GraphQL"

        info = ""
        query = args[2]

        if "ResolveInfo" == type(query).__name__:
            if str(query.return_type).rstrip("!") in [
                "Boolean",
                "Context",
                "Date",
                "DateTime",
                "Decimal",
                "Dynamic",
                "Float",
                "ID",
                "Int",
                "String",
                "Time",
                "UUID",
                "Boolean",
                "String",
            ]:
                return wrapped(*args, **kwargs)

            op = query.operation.operation
            field = query.field_name
            info = "%s %s" % (op, field)
        elif "RequestParams" == type(query).__name__:
            info = "%s %s" % ("request", query.query)
        else:
            info = str(query)

        with capture_span("%s.%s" % (name, info), span_type="external", span_subtype="graphql", span_action="query"):
            return wrapped(*args, **kwargs)