Skip to main content

sentry 接入dingTalk 告警

Project description

sentry-notice

sentry 接入dingding 告警

安装sentry

  • 下载sentry, 使用docker-compose 安装
  • 注: 每个sentry 版本,都有支持的docker 及 docker-compose 版本
  • pip install sentry 会有依赖不能下载
  • 使用下载的sentry 镜像作为虚拟环境
  • main.py 及 Dockerfile 只是为了查看源码

发送告警

{
    "event_id": "5a552273622c4d949495df39b7b063c8",
    "level": "error",
    "version": "5",
    "type": "default",
    "logentry": {
        "formatted": "This is an example Python exception"
    },
    "logger": "",
    "modules": {
        "my.package": "1.0.0"
    },
    "platform": "python",
    "timestamp": 1640577300.559,
    "received": 1640577360.560556,
    "environment": "prod",
    "user": {
        "id": "1",
        "email": "sentry@example.com",
        "ip_address": "127.0.0.1",
        "username": "sentry",
        "name": "Sentry",
        "geo": {
            "country_code": "GB",
            "city": "London",
            "region": "H9"
        }
    },
    "request": {
        "url": "http://example.com/foo",
        "method": "GET",
        "data": {
            "hello": "world"
        },
        "query_string": [
            [
                "foo",
                "bar"
            ]
        ],
        "cookies": [
            [
                "foo",
                "bar"
            ],
            [
                "biz",
                "baz"
            ]
        ],
        "headers": [
            [
                "Content-Type",
                "application/json"
            ],
            [
                "Referer",
                "http://example.com"
            ],
            [
                "User-Agent",
                "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36"
            ]
        ],
        "env": {
            "ENV": "prod"
        },
        "inferred_content_type": "application/json"
    },
    "contexts": {
        "browser": {
            "name": "Chrome",
            "version": "28.0.1500",
            "type": "browser"
        },
        "client_os": {
            "name": "Windows",
            "version": "8",
            "type": "os"
        }
    },
    "stacktrace": {
        "frames": [
            {
                "function": "build_msg",
                "module": "raven.base",
                "filename": "raven/base.py",
                "abs_path": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/base.py",
                "lineno": 303,
                "pre_context": [
                    "                frames = stack",
                    "",
                    "            data.update({",
                    "                'sentry.interfaces.Stacktrace': {",
                    "                    'frames': get_stack_info(frames,"
                ],
                "context_line": "                        transformer=self.transform)",
                "post_context": [
                    "                },",
                    "            })",
                    "",
                    "        if 'sentry.interfaces.Stacktrace' in data:",
                    "            if self.include_paths:"
                ],
                "in_app": false,
                "vars": {
                    "'culprit'": null,
                    "'data'": {
                        "'message'": "u'This is a test message generated using ``raven test``'",
                        "'sentry.interfaces.Message'": {
                            "'message'": "u'This is a test message generated using ``raven test``'",
                            "'params'": []
                        }
                    },
                    "'date'": "datetime.datetime(2013, 8, 13, 3, 8, 24, 880386)",
                    "'event_id'": "'54a322436e1b47b88e239b78998ae742'",
                    "'event_type'": "'raven.events.Message'",
                    "'extra'": {
                        "'go_deeper'": [
                            [
                                "{\"'bar'\":[\"'baz'\"],\"'foo'\":\"'bar'\"}"
                            ]
                        ],
                        "'loadavg'": [
                            0.37255859375,
                            0.5341796875,
                            0.62939453125
                        ],
                        "'user'": "'dcramer'"
                    },
                    "'frames'": "<generator object iter_stack_frames at 0x107bcc3c0>",
                    "'handler'": "<raven.events.Message object at 0x107bd0890>",
                    "'k'": "'sentry.interfaces.Message'",
                    "'kwargs'": {
                        "'level'": 20,
                        "'message'": "'This is a test message generated using ``raven test``'"
                    },
                    "'public_key'": null,
                    "'result'": {
                        "'message'": "u'This is a test message generated using ``raven test``'",
                        "'sentry.interfaces.Message'": {
                            "'message'": "u'This is a test message generated using ``raven test``'",
                            "'params'": []
                        }
                    },
                    "'self'": "<raven.base.Client object at 0x107bb8210>",
                    "'stack'": true,
                    "'tags'": null,
                    "'time_spent'": null,
                    "'v'": {
                        "'message'": "u'This is a test message generated using ``raven test``'",
                        "'params'": []
                    }
                }
            },
            {
                "function": "capture",
                "module": "raven.base",
                "filename": "raven/base.py",
                "abs_path": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/base.py",
                "lineno": 459,
                "pre_context": [
                    "        if not self.is_enabled():",
                    "            return",
                    "",
                    "        data = self.build_msg(",
                    "            event_type, data, date, time_spent, extra, stack, tags=tags,"
                ],
                "context_line": "            **kwargs)",
                "post_context": [
                    "",
                    "        self.send(**data)",
                    "",
                    "        return (data.get('event_id'),)",
                    ""
                ],
                "in_app": false,
                "vars": {
                    "'data'": null,
                    "'date'": null,
                    "'event_type'": "'raven.events.Message'",
                    "'extra'": {
                        "'go_deeper'": [
                            [
                                "{\"'bar'\":[\"'baz'\"],\"'foo'\":\"'bar'\"}"
                            ]
                        ],
                        "'loadavg'": [
                            0.37255859375,
                            0.5341796875,
                            0.62939453125
                        ],
                        "'user'": "'dcramer'"
                    },
                    "'kwargs'": {
                        "'level'": 20,
                        "'message'": "'This is a test message generated using ``raven test``'"
                    },
                    "'self'": "<raven.base.Client object at 0x107bb8210>",
                    "'stack'": true,
                    "'tags'": null,
                    "'time_spent'": null
                }
            },
            {
                "function": "captureMessage",
                "module": "raven.base",
                "filename": "raven/base.py",
                "abs_path": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/base.py",
                "lineno": 577,
                "pre_context": [
                    "        \"\"\"",
                    "        Creates an event from ``message``.",
                    "",
                    "        >>> client.captureMessage('My event just happened!')",
                    "        \"\"\""
                ],
                "context_line": "        return self.capture('raven.events.Message', message=message, **kwargs)",
                "post_context": [
                    "",
                    "    def captureException(self, exc_info=None, **kwargs):",
                    "        \"\"\"",
                    "        Creates an event from an exception.",
                    ""
                ],
                "in_app": false,
                "vars": {
                    "'kwargs'": {
                        "'data'": null,
                        "'extra'": {
                            "'go_deeper'": [
                                "[{\"'bar'\":[\"'baz'\"],\"'foo'\":\"'bar'\"}]"
                            ],
                            "'loadavg'": [
                                0.37255859375,
                                0.5341796875,
                                0.62939453125
                            ],
                            "'user'": "'dcramer'"
                        },
                        "'level'": 20,
                        "'stack'": true,
                        "'tags'": null
                    },
                    "'message'": "'This is a test message generated using ``raven test``'",
                    "'self'": "<raven.base.Client object at 0x107bb8210>"
                }
            },
            {
                "function": "send_test_message",
                "module": "raven.scripts.runner",
                "filename": "raven/scripts/runner.py",
                "abs_path": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/scripts/runner.py",
                "lineno": 77,
                "pre_context": [
                    "        level=logging.INFO,",
                    "        stack=True,",
                    "        tags=options.get('tags', {}),",
                    "        extra={",
                    "            'user': get_uid(),"
                ],
                "context_line": "            'loadavg': get_loadavg(),",
                "post_context": [
                    "        },",
                    "    ))",
                    "",
                    "    if client.state.did_fail():",
                    "        print('error!')"
                ],
                "in_app": false,
                "vars": {
                    "'client'": "<raven.base.Client object at 0x107bb8210>",
                    "'data'": null,
                    "'k'": "'secret_key'",
                    "'options'": {
                        "'data'": null,
                        "'tags'": null
                    }
                }
            },
            {
                "function": "main",
                "module": "raven.scripts.runner",
                "filename": "raven/scripts/runner.py",
                "abs_path": "/home/ubuntu/.virtualenvs/getsentry/src/raven/raven/scripts/runner.py",
                "lineno": 112,
                "pre_context": [
                    "    print(\"Using DSN configuration:\")",
                    "    print(\" \", dsn)",
                    "    print()",
                    "",
                    "    client = Client(dsn, include_paths=['raven'])"
                ],
                "context_line": "    send_test_message(client, opts.__dict__)",
                "in_app": false,
                "vars": {
                    "'args'": [
                        "'test'",
                        "'https://ebc35f33e151401f9deac549978bda11:f3403f81e12e4c24942d505f086b2cad@sentry.io/1'"
                    ],
                    "'client'": "<raven.base.Client object at 0x107bb8210>",
                    "'dsn'": "'https://ebc35f33e151401f9deac549978bda11:f3403f81e12e4c24942d505f086b2cad@sentry.io/1'",
                    "'opts'": "<Values at 0x107ba3b00: {'data': None, 'tags': None}>",
                    "'parser'": "<optparse.OptionParser instance at 0x107ba3368>",
                    "'root'": "<logging.Logger object at 0x107ba5b10>"
                }
            }
        ]
    },
    "tags": [
        [
            "level",
            "error"
        ],
        [
            "server_name",
            "web01.example.org"
        ]
    ],
    "extra": {
        "emptyList": [],
        "emptyMap": {},
        "length": 10837790,
        "results": [
            1,
            2,
            3,
            4,
            5
        ],
        "session": {
            "foo": "bar"
        },
        "unauthorized": false,
        "url": "http://example.org/foo/bar/"
    }

相关模块

group

see: https://github1s.com/getsentry/sentry/blob/HEAD/src/sentry/models/group.py#L385 class Group(Model)

project

see: https://github1s.com/getsentry/sentry/blob/HEAD/src/sentry/models/project.py

event

see: https://github1s.com/getsentry/sentry/blob/HEAD/src/sentry/eventstore/models.py#L118

see: https://github1s.com/getsentry/sentry/blob/HEAD/src/sentry/snuba/events.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sentry-notice-1.0.4.tar.gz (9.5 kB view hashes)

Uploaded Source

Built Distribution

sentry_notice-1.0.4-py3-none-any.whl (6.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page