netflix / dispatch Goto Github PK
View Code? Open in Web Editor NEWAll of the ad-hoc things you're doing to manage incidents today, done for you, and much more!
License: Apache License 2.0
All of the ad-hoc things you're doing to manage incidents today, done for you, and much more!
License: Apache License 2.0
Hello!
I have problems with create tags.
When i run all containers via docker-compose.
I run those commands:
dispatch database init
dispatch database upgrade
dispatch database restore --dump-file /dispatch-sample-data.dump
After those I cannot add some tags in UI
In logs I see this
How I can resolve this?
https://github.com/Netflix/dispatch/tree/develop/data
This is not data, this is a "restore" schema for the tables and such, who ever made the dump said schema only rather than schema & data.
So I have installed everything (I am following the installation guide) https://hawkins.gitbook.io/dispatch/installation. After running ./install.sh, how do you actually run the Dispatch environment using docker?
.env
file doesn't exist in the directory docker
. See dockerfile:
Line 124 in 56a9435
The initial database upgrade command in the install.sh script fails. Running the command docker-compose run --rm web database upgrade
results in the following error:
Traceback (most recent call last):
File "/usr/local/bin/dispatch", line 8, in <module>
sys.exit(entrypoint())
File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 766, in entrypoint
dispatch_cli()
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 553, in upgrade_database
alembic_command.upgrade(alembic_cfg, revision, sql=sql, tag=tag)
File "/usr/local/lib/python3.8/site-packages/alembic/command.py", line 278, in upgrade
script = ScriptDirectory.from_config(config)
File "/usr/local/lib/python3.8/site-packages/alembic/script/base.py", line 126, in from_config
script_location = config.get_main_option("script_location")
File "/usr/local/lib/python3.8/site-packages/alembic/config.py", line 293, in get_main_option
return self.get_section_option(self.config_ini_section, name, default)
File "/usr/local/lib/python3.8/site-packages/alembic/config.py", line 276, in get_section_option
raise util.CommandError(
alembic.util.exc.CommandError: No config file '/usr/local/lib/python3.8/site-packages/dispatch/alembic.ini' found, or file has no '[alembic]' section
It appears that the cause may be the src/dispatch/alembic
folder and the src/dispatch/alembic.ini
file are missing in the built docker image.
I am running the installation in a fresh Ubuntu VM with docker support. After running the ./install.sh for the first time, it is failing with following error:
`Successfully built 2d9cad6cd203
Successfully tagged dispatch-local:latest
Docker images built.
Creating network "dispatch_default" with the default driver
Creating dispatch_postgres_1 ... done
Setting up database...
Starting dispatch_postgres_1 ... done
Usage: dispatch [OPTIONS] COMMAND [ARGS]...
Command-line interface to Dispatch.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
contact All commands for contact manipulation.
database Container for all dispatch database commands.
incident All commands for incident manipulation.
plugins All commands for plugin manipulation.
scheduler Container for all dispatch scheduler commands.
server Container for all dispatch server commands.
term All commands for term manipulation.
Starting dispatch_postgres_1 ... done
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> e75e103693f2, Initial migration
INFO [alembic.runtime.migration] Running upgrade e75e103693f2 -> d0501fc6be89, empty message
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1247, in _execute_context
self.dialect.do_execute(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 588, in do_execute
cursor.execute(statement, parameters)
psycopg2.errors.UndefinedTable: relation "application" does not exist
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/bin/dispatch", line 8, in
sys.exit(entrypoint())
File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 811, in entrypoint
dispatch_cli()
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 829, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 592, in upgrade_database
alembic_command.upgrade(alembic_cfg, revision, sql=sql, tag=tag)
File "/usr/local/lib/python3.8/site-packages/alembic/command.py", line 298, in upgrade
script.run_env()
File "/usr/local/lib/python3.8/site-packages/alembic/script/base.py", line 489, in run_env
util.load_python_file(self.dir, "env.py")
File "/usr/local/lib/python3.8/site-packages/alembic/util/pyfiles.py", line 98, in load_python_file
module = load_module_py(module_id, path)
File "/usr/local/lib/python3.8/site-packages/alembic/util/compat.py", line 184, in load_module_py
spec.loader.exec_module(module)
File "", line 783, in exec_module
File "", line 219, in call_with_frames_removed
File "/usr/local/lib/python3.8/site-packages/dispatch/alembic/env.py", line 84, in
run_migrations_online()
File "/usr/local/lib/python3.8/site-packages/dispatch/alembic/env.py", line 78, in run_migrations_online
context.run_migrations()
File "", line 8, in run_migrations
File "/usr/local/lib/python3.8/site-packages/alembic/runtime/environment.py", line 846, in run_migrations
self.get_context().run_migrations(**kw)
File "/usr/local/lib/python3.8/site-packages/alembic/runtime/migration.py", line 518, in run_migrations
step.migration_fn(**kw)
File "/usr/local/lib/python3.8/site-packages/dispatch/alembic/versions/d0501fc6be89.py", line 21, in upgrade
op.add_column("application", sa.Column("created_at", sa.DateTime(), nullable=True))
File "", line 8, in add_column
File "", line 3, in add_column
File "/usr/local/lib/python3.8/site-packages/alembic/operations/ops.py", line 1927, in add_column
return operations.invoke(op)
File "/usr/local/lib/python3.8/site-packages/alembic/operations/base.py", line 374, in invoke
return fn(self, operation)
File "/usr/local/lib/python3.8/site-packages/alembic/operations/toimpl.py", line 132, in add_column
operations.impl.add_column(table_name, column, schema=schema, **kw)
File "/usr/local/lib/python3.8/site-packages/alembic/ddl/impl.py", line 237, in add_column
self._exec(base.AddColumn(table_name, column, schema=schema))
File "/usr/local/lib/python3.8/site-packages/alembic/ddl/impl.py", line 140, in _exec
return conn.execute(construct, *multiparams, **params)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 984, in execute
return meth(self, multiparams, params)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/ddl.py", line 72, in _execute_on_connection
return connection._execute_ddl(self, multiparams, params)
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1041, in _execute_ddl
ret = self._execute_context(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1287, in _execute_context
self.handle_dbapi_exception(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1481, in handle_dbapi_exception
util.raise(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 178, in raise
raise exception
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1247, in _execute_context
self.dialect.do_execute(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 588, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "application" does not exist
[SQL: ALTER TABLE application ADD COLUMN created_at TIMESTAMP WITHOUT TIME ZONE]
(Background on this error at: http://sqlalche.me/e/f405)
Cleaning up... `
Docker status after this:
sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2e73faaaaf72 dispatch-local "dispatch database uโฆ" 4 minutes ago Exited (1) 4 minutes ago dispatch_web_run_4926996710db dd61a2d4496d dispatch-local "dispatch --help" 4 minutes ago Exited (0) 4 minutes ago dispatch_web_run_ccbde7802009 235a22ea542f postgres:9.6 "docker-entrypoint.sโฆ" 4 minutes ago Exited (0) 4 minutes ago dispatch_postgres_1
docker start 235a22ea542f
# it works though and postgres container starts up with empty dispatcher database.
As per the error message, it is trying to run migration process at the time of installation only. Please assist.
I'm in the dashboard UI now and trying to input some test incident types/services etc to populate the info for testing. As far as I know I've set up all the integrations via .env.
I'm now getting an 'undefined' error (screenshot attached) when trying to add anything into the UI. Are there any logs I can view to get to more info why it's failing? Worth mentioning I'm running as a docker container from the dispatch-docker repo.
Any pointers appreciated, thanks!
install.sh missing from repo
References to it from: docs/installation.md
Am trying to docker build
or executing /dispatch-docker/install.sh
on a Mac under Ubuntu 20.04. Unfortunately the process fails with the following output.
Step 14/44 : RUN set -x && wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini" && wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/v$TINI_VERSION/tini.asc" && gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini && rm /usr/local/bin/tini.asc && chmod +x /usr/local/bin/tini
---> Using cache
---> ffdcf0d5d43e
Step 15/44 : COPY .nvmrc /usr/src/dispatch/
COPY failed: stat /var/lib/docker/tmp/docker-builder708155561/.nvmrc: no such file or directory
What am I doing wrong? Any tips or ideas? Thx in advance
I need to set up some sort of authentication. Looking for some ideas?
I know you talked about basic auth. How do I set it up?
Hi,
I tried bringing up the the Dispatch development environment.
The Vuejs part with npm install serve
, and the FastAPI part with the run.py
script after installing the dependecies in the virutalenv.
The problem is that I can not get the frontend working due to the CORS errors, is there a simple way to disable Google OAuth authentication and to run the dispatch without it? I just want to evaluate the frontend part of Dispatch.
Is there better forum for questions?
I'm sure there is an issue in my .env file, but I am not sure what setting causes this:
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> e75e103693f2, Initial migration
INFO [alembic.runtime.migration] Running upgrade e75e103693f2 -> d0501fc6be89, empty message
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1247, in _execute_context
self.dialect.do_execute(
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 588, in do_execute
cursor.execute(statement, parameters)
psycopg2.errors.UndefinedTable: relation "application" does not exist
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/bin/dispatch", line 8, in
sys.exit(entrypoint())
File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 811, in entrypoint
dispatch_cli()
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 829, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
Hey guys,
First off, thanks for open-sourcing Dispatch!
At my company we're increasing the level of automation in our incident management process. Dispatch is being considered as one of the candidates to support this. To better understand its current feature-set and its viability in our context, we got it up-and-running using most of the currently mandatory plugins (merely disabled Zoom) and played around with it. To make it fit our workflow, we would need to be able to customize certain things and add others (aside from having to create an alternative to the G Suite plugin as we're not using that).
I would like to better understand to what extent the following changes would be considered welcome ones:
tags
or terms
are intended for, but I kind of fail to understand the idea behind both data types (as well as the definition
one btw).Other potentially interesting changes:
Could you please comment on the above?
Thanks in advance!
Any idea why this is happening after I do docker run
:
/etc/dispatch/docker-entrypoint.sh: line 12: syntax error near unexpected token `start'
I set the chmod u+x, but I do not see the problem in the script.
@kevgliss OK thanks, I have added this, unfortunately now receiving a different error when I try to add a new service (or other inputs):
IncidentType not created. Reason: undefined
Originally posted by @sarahcthekey in #95 (comment)
Hello, I am working on setting up a dispatch instance and I have come across the following error.
Starting dispatch_postgres_1 ... done Traceback (most recent call last): File "/usr/local/bin/dispatch", line 8, in <module> sys.exit(entrypoint()) File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 845, in entrypoint dispatch_cli() File "/usr/local/lib/python3.8/site-packages/click/core.py", line 829, in __call__ return self.main(*args, **kwargs) File "/usr/local/lib/python3.8/site-packages/click/core.py", line 782, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke return callback(*args, **kwargs) File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 408, in clean_incident_artifacts from dispatch.plugins.dispatch_google.drive.config import GOOGLE_DOMAIN ModuleNotFoundError: No module named 'dispatch.plugins.dispatch_google.drive.config'
this was from running docker-compose run web incident clean
I don't have a full development instance set up to test this. Can you confirm if this function is working properly for you in your deployment? I suspect there may be a misnamed module.
def clean_incident_artifacts(pattern): """This command will clean up incident artifacts. Useful for development.""" import re from dispatch.plugins.dispatch_google.drive.config import GOOGLE_DOMAIN
Thank you
-Alexa Kelley
Mattermost is an on-prem workplace chat solution that is very similar to Slack. It would be nice if Dispatch had support for it as well.
This request relies on #55 and would likely require refactoring the codebase to have a common internal interface, implemented by both the Slack and Mattermost plugins, for chat systems.
POST /api/v1/events/slack/event 404 Not Found
Reading through the docs and the code, I'm not able to discern if there's a way to boot the core Dispatch experience without the Slack, Google, Jira, and PagerDuty plugins?
The docs and the way the app behaves appear to imply that Dispatch will not work without them configured.
However, suppose I just want to get started to evaluate without configuring everything, I'd like a way to disable those plugins just to reduce the distance from" 0-to-UI" for evaluation purposes.
Or boot Dispatch by default and enable plugins one at a time via an Admin UI.
If this isn't already supported I can update the issue title to make this more of a feature request.
Hi,
When I run install.sh
it fails with the following error:
...
Step 10/43 : RUN for key in B42F6819007F00F88E364FD4036A9C25BF357DD4 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 FD3A5288F042B6850C66B31F09FE44734EB7990E 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 DD8F2338BAE7501E3DD5AC78C273792F7D83545D C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 B9AE9905FFD7803F25714661B63B535A4C206CA9 77984A986EBC2AA786BC0F66B01FBB92821C587A 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 4ED778F539E3634C779C87C6D7062848A1AB005C A48C2BEE680E841632CD4E44F07496B3EB3C1762 B9E2F5981AA6E0CD28160D9FF13993A75599653C ; do gpg --batch --keyserver hkps://mattrobenolt-keyserver.global.ssl.fastly.net:443 --recv-keys "$key"; done
---> Running in 5b7fc432e312
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: keyserver receive failed: Server indicated a failure
gpg: keyserver receive failed: Server indicated a failure
...
gpg: keyserver receive failed: Server indicated a failure
Removing intermediate container 5b7fc432e312
ERROR: Service 'web' failed to build: The command '/bin/sh -c for key in...
Running on KDE neon User Edition 5.18 (18.04)
, Docker version 19.03.7
and docker-compose version 1.25.4
.
setting default value not working like that for booleans. https://stackoverflow.com/questions/15464169/how-to-set-default-boolean-values-in-javascript
Hello!
I have problems with auth after upgrade dispatch.
My .env config this
DISPATCH_AUTHENTICATION_PROVIDER_SLUG=
DISPATCH_AUTHENTICATION_PROVIDER=
#DISPATCH_AUTHENTICATION_PROVIDER=""
#DISPATCH_AUTHENTICATION_PROVIDER_SLUG=
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_JWKS=
#VUE_APP_DISPATCH_AUTHENTICATION_PROVIDER_PKCE_OPEN_ID_CONNECT_URL=""
#VUE_APP_DISPATCH_AUTHENTICATION_PROVIDER_PKCE_CLIENT_ID=""
Hi there,
First of all, I am really thrilled you've open-sourced this project.
It looks exactly like the sort of thing we've been looking for to improve our approach to incident management.
To this end, I was wondering if you had a roadmap for features you'll be adding?
I was also keen to add some further integrations but I wanted to check you're happy to receive support and contributions?
When running docker-compose up
after install.sh script finishes, the following error appears:
dispatch-scheduler_1 | Traceback (most recent call last):
dispatch-scheduler_1 | File "/usr/local/bin/dispatch", line 8, in <module>
dispatch-scheduler_1 | sys.exit(entrypoint())
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 766, in entrypoint
dispatch-scheduler_1 | dispatch_cli()
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 764, in __call__
dispatch-scheduler_1 | return self.main(*args, **kwargs)
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 717, in main
dispatch-scheduler_1 | rv = self.invoke(ctx)
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
dispatch-scheduler_1 | return _process_result(sub_ctx.command.invoke(sub_ctx))
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
dispatch-scheduler_1 | return _process_result(sub_ctx.command.invoke(sub_ctx))
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 956, in invoke
dispatch-scheduler_1 | return ctx.invoke(self.callback, **ctx.params)
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 555, in invoke
dispatch-scheduler_1 | return callback(*args, **kwargs)
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 331, in main
dispatch-scheduler_1 | run(**kwargs)
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 354, in run
dispatch-scheduler_1 | server.run()
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 382, in run
dispatch-scheduler_1 | loop.run_until_complete(self.serve(sockets=sockets))
dispatch-scheduler_1 | File "uvloop/loop.pyx", line 1456, in uvloop.loop.Loop.run_until_complete
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 389, in serve
dispatch-scheduler_1 | config.load()
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/config.py", line 288, in load
dispatch-scheduler_1 | self.loaded_app = import_from_string(self.app)
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/importer.py", line 20, in import_from_string
dispatch-scheduler_1 | module = importlib.import_module(module_str)
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
dispatch-scheduler_1 | return _bootstrap._gcd_import(name[level:], package, level)
dispatch-scheduler_1 | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
dispatch-scheduler_1 | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
dispatch-scheduler_1 | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
dispatch-scheduler_1 | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
dispatch-scheduler_1 | File "<frozen importlib._bootstrap_external>", line 783, in exec_module
dispatch-scheduler_1 | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/dispatch/main.py", line 32, in <module>
dispatch-scheduler_1 | frontend.mount("/", StaticFiles(directory=STATIC_DIR), name="app")
dispatch-scheduler_1 | File "/usr/local/lib/python3.8/site-packages/starlette/staticfiles.py", line 55, in __init__
dispatch-scheduler_1 | raise RuntimeError(f"Directory '{directory}' does not exist")
dispatch-scheduler_1 | RuntimeError: Directory '/usr/local/lib/python3.8/site-packages/dispatch/static/dispatch/dist' does not exist
web_1 | Traceback (most recent call last):
web_1 | File "/usr/local/bin/dispatch", line 8, in <module>
web_1 | sys.exit(entrypoint())
web_1 | File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 766, in entrypoint
web_1 | dispatch_cli()
web_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 764, in __call__
web_1 | return self.main(*args, **kwargs)
web_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 717, in main
web_1 | rv = self.invoke(ctx)
web_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
web_1 | return _process_result(sub_ctx.command.invoke(sub_ctx))
web_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
web_1 | return _process_result(sub_ctx.command.invoke(sub_ctx))
web_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 956, in invoke
web_1 | return ctx.invoke(self.callback, **ctx.params)
web_1 | File "/usr/local/lib/python3.8/site-packages/click/core.py", line 555, in invoke
web_1 | return callback(*args, **kwargs)
web_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 331, in main
web_1 | run(**kwargs)
web_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 354, in run
web_1 | server.run()
web_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 382, in run
web_1 | loop.run_until_complete(self.serve(sockets=sockets))
web_1 | File "uvloop/loop.pyx", line 1456, in uvloop.loop.Loop.run_until_complete
web_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 389, in serve
web_1 | config.load()
web_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/config.py", line 288, in load
web_1 | self.loaded_app = import_from_string(self.app)
web_1 | File "/usr/local/lib/python3.8/site-packages/uvicorn/importer.py", line 20, in import_from_string
web_1 | module = importlib.import_module(module_str)
web_1 | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
web_1 | return _bootstrap._gcd_import(name[level:], package, level)
web_1 | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
web_1 | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
web_1 | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
web_1 | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
web_1 | File "<frozen importlib._bootstrap_external>", line 783, in exec_module
web_1 | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
web_1 | File "/usr/local/lib/python3.8/site-packages/dispatch/main.py", line 32, in <module>
web_1 | frontend.mount("/", StaticFiles(directory=STATIC_DIR), name="app")
web_1 | File "/usr/local/lib/python3.8/site-packages/starlette/staticfiles.py", line 55, in __init__
web_1 | raise RuntimeError(f"Directory '{directory}' does not exist")
web_1 | RuntimeError: Directory '/usr/local/lib/python3.8/site-packages/dispatch/static/dispatch/dist' does not exist
The cause seems to be that the src/dispatch/static
folder is missing in the built docker image.
The the UI correctly sets the description and the server's response does have the new description but this is never committed to that database.
While attempting to build the web image:
Step 12/46 : RUN set -x && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc" && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu && rm -r /usr/local/bin/gosu.asc && chmod +x /usr/local/bin/gosu
---> Running in 65056ab09231
+ dpkg --print-architecture
+ wget -O /usr/local/bin/gosu https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64
--2020-05-06 01:03:57-- https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64
Resolving github.com (github.com)... 192.30.255.112
Connecting to github.com (github.com)|192.30.255.112|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/19708981/82e9dd00-d091-11e8-8734-a1caffcee352?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200506%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200506T010357Z&X-Amz-Expires=300&X-Amz-Signature=4c454ef9702f4d502f5e4ccd1e12f0014264065ce87a9ccb344468b3c5887b5c&X-Amz-SignedHeaders=host&actor_id=0&repo_id=19708981&response-content-disposition=attachment%3B%20filename%3Dgosu-amd64&response-content-type=application%2Foctet-stream [following]
--2020-05-06 01:03:57-- https://github-production-release-asset-2e65be.s3.amazonaws.com/19708981/82e9dd00-d091-11e8-8734-a1caffcee352?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200506%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200506T010357Z&X-Amz-Expires=300&X-Amz-Signature=4c454ef9702f4d502f5e4ccd1e12f0014264065ce87a9ccb344468b3c5887b5c&X-Amz-SignedHeaders=host&actor_id=0&repo_id=19708981&response-content-disposition=attachment%3B%20filename%3Dgosu-amd64&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.237.91
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.237.91|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2294944 (2.2M) [application/octet-stream]
Saving to: โ/usr/local/bin/gosuโ
0K .......... .......... .......... .......... .......... 2% 562K 4s
50K .......... .......... .......... .......... .......... 4% 603K 4s
100K .......... .......... .......... .......... .......... 6% 559K 4s
150K .......... .......... .......... .......... .......... 8% 6.50M 3s
200K .......... .......... .......... .......... .......... 11% 32.8M 2s
250K .......... .......... .......... .......... .......... 13% 628K 2s
300K .......... .......... .......... .......... .......... 15% 5.47M 2s
350K .......... .......... .......... .......... .......... 17% 12.9M 2s
400K .......... .......... .......... .......... .......... 20% 550K 2s
450K .......... .......... .......... .......... .......... 22% 17.8M 2s
500K .......... .......... .......... .......... .......... 24% 584K 2s
550K .......... .......... .......... .......... .......... 26% 5.33M 2s
600K .......... .......... .......... .......... .......... 29% 7.40M 1s
650K .......... .......... .......... .......... .......... 31% 702K 1s
700K .......... .......... .......... .......... .......... 33% 9.17M 1s
750K .......... .......... .......... .......... .......... 35% 7.24M 1s
800K .......... .......... .......... .......... .......... 37% 650K 1s
850K .......... .......... .......... .......... .......... 40% 6.94M 1s
900K .......... .......... .......... .......... .......... 42% 17.8M 1s
950K .......... .......... .......... .......... .......... 44% 664K 1s
1000K .......... .......... .......... .......... .......... 46% 4.91M 1s
1050K .......... .......... .......... .......... .......... 49% 6.22M 1s
1100K .......... .......... .......... .......... .......... 51% 752K 1s
1150K .......... .......... .......... .......... .......... 53% 3.45M 1s
1200K .......... .......... .......... .......... .......... 55% 4.59M 1s
1250K .......... .......... .......... .......... .......... 58% 737K 1s
1300K .......... .......... .......... .......... .......... 60% 7.07M 1s
1350K .......... .......... .......... .......... .......... 62% 589K 1s
1400K .......... .......... .......... .......... .......... 64% 3.30M 1s
1450K .......... .......... .......... .......... .......... 66% 580K 1s
1500K .......... .......... .......... .......... .......... 69% 7.23M 1s
1550K .......... .......... .......... .......... .......... 71% 21.1M 0s
1600K .......... .......... .......... .......... .......... 73% 602K 0s
1650K .......... .......... .......... .......... .......... 75% 587K 0s
1700K .......... .......... .......... .......... .......... 78% 5.38M 0s
1750K .......... .......... .......... .......... .......... 80% 18.4M 0s
1800K .......... .......... .......... .......... .......... 82% 649K 0s
1850K .......... .......... .......... .......... .......... 84% 17.5M 0s
1900K .......... .......... .......... .......... .......... 87% 6.66M 0s
1950K .......... .......... .......... .......... .......... 89% 584K 0s
2000K .......... .......... .......... .......... .......... 91% 5.51M 0s
2050K .......... .......... .......... .......... .......... 93% 14.9M 0s
2100K .......... .......... .......... .......... .......... 95% 722K 0s
2150K .......... .......... .......... .......... .......... 98% 5.16M 0s
2200K .......... .......... .......... .......... . 100% 5.63M=1.6s
2020-05-06 01:03:59 (1.34 MB/s) - โ/usr/local/bin/gosuโ saved [2294944/2294944]
+ dpkg --print-architecture
+ wget -O /usr/local/bin/gosu.asc https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64.asc
--2020-05-06 01:03:59-- https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64.asc
Resolving github.com (github.com)... 192.30.255.113
Connecting to github.com (github.com)|192.30.255.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/19708981/82514680-d091-11e8-9b17-2b91cf6a780f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200506%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200506T010400Z&X-Amz-Expires=300&X-Amz-Signature=d02bcbb17bb93ed4fa4f629bb50c18ad2f70fc7122374f0032998e945e178c42&X-Amz-SignedHeaders=host&actor_id=0&repo_id=19708981&response-content-disposition=attachment%3B%20filename%3Dgosu-amd64.asc&response-content-type=application%2Foctet-stream [following]
--2020-05-06 01:04:00-- https://github-production-release-asset-2e65be.s3.amazonaws.com/19708981/82514680-d091-11e8-9b17-2b91cf6a780f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200506%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200506T010400Z&X-Amz-Expires=300&X-Amz-Signature=d02bcbb17bb93ed4fa4f629bb50c18ad2f70fc7122374f0032998e945e178c42&X-Amz-SignedHeaders=host&actor_id=0&repo_id=19708981&response-content-disposition=attachment%3B%20filename%3Dgosu-amd64.asc&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.217.32.164
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.217.32.164|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 566 [application/octet-stream]
Saving to: โ/usr/local/bin/gosu.ascโ
0K 100% 12.2M=0s
2020-05-06 01:04:00 (12.2 MB/s) - โ/usr/local/bin/gosu.ascโ saved [566/566]
+ gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu
gpg: Signature made Mon Oct 15 22:44:22 2018 UTC
gpg: using RSA key B42F6819007F00F88E364FD4036A9C25BF357DD4
gpg: Can't check signature: No public key
Hello,
I managed to go through the whole docker-dispatch/install.sh
installation script, but I have the following issue when starting the containers:
Error: Missing argument "APP".
I tried to clone dispatch
locally to make some changes and put an APP
value, but I'm not sure what the value should be. I tried with main
but got ERROR: Error loading ASGI app. Could not import module "main".
.
I feel restricted by my lack of python knowledge, hope you can help!
I'm concerned I'm missing something, but I cannot successfully run the database upgrade
command.
It is able to successfully run migration e75e103693f2
: https://github.com/Netflix/dispatch/blob/develop/src/dispatch/alembic/versions/e75e103693f2_.py
However, this appears to not do anything.
Then the migration tries to run d0501fc6be89
: https://github.com/Netflix/dispatch/blob/develop/src/dispatch/alembic/versions/d0501fc6be89_.py
In my environment, that fails with:
File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 588, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "application" does not exist
[SQL: ALTER TABLE application ADD COLUMN created_at TIMESTAMP WITHOUT TIME ZONE]
(Background on this error at: http://sqlalche.me/e/f405)
That's pretty consistent with the initial migration not actually creating any tables. I can verify that with Postgres that my database is indeed empty:
$ echo '\d' | dc exec -T postgres psql -U dispatch dispatch
List of relations
Schema | Name | Type | Owner
--------+-----------------+-------+----------
public | alembic_version | table | dispatch
(1 row)
Is there something I need to do to create the initial schema?
root@917329a03ed4:/etc/dispatch# ./docker-entrypoint.sh server start
bash: ./docker-entrypoint.sh: Permission denied
root@917329a03ed4:/etc/dispatch# chmod u+x docker-entrypoint.sh
root@917329a03ed4:/etc/dispatch# ./docker-entrypoint.sh
root@917329a03ed4:/etc/dispatch# ./docker-entrypoint.sh server start
./docker-entrypoint.sh: line 17: exec: server: not found
root@917329a03ed4:/etc/dispatch# ./docker-entrypoint.sh "server start"
Traceback (most recent call last):
File "/usr/local/bin/dispatch", line 5, in <module>
from dispatch.cli import entrypoint
File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 13, in <module>
from dispatch.application.models import * # noqa
File "/usr/local/lib/python3.8/site-packages/dispatch/application/models.py", line 9, in <module>
from dispatch.models import DispatchBase, applications_incidents, TimeStampMixin
File "/usr/local/lib/python3.8/site-packages/dispatch/models.py", line 181, in <module>
from dispatch.status_report.models import * # noqa
ModuleNotFoundError: No module named 'dispatch.status_report'
root@917329a03ed4:/etc/dispatch#
After having built the image with docker build . -t dispatch-local
And running it with docker run -ti --entrypoint=bash dispatch-local
The /incidents/:name
path in https://github.com/Netflix/dispatch/blob/develop/src/dispatch/static/dispatch/src/router/config.js#L98 conflicts and takes precedence over the /incidents/types
and /incidents/priorities
paths in the same config.js
file.
Hello!
I have two questions. I cannot add Commander to incident when i create an incident.
In my .env file I set INCIDENT_PLUGIN_CONTACT_SLUG to default. But i don't create some slack channel to converstaion. And i see in log this.
Now I want to test the dispatch offline (without some plugins, such as Jira, slack, etc.). I just want to see the person who took the incident to work. How can i do this?
My second question. How i Can create Task? I don't have some button to create(
root@0ef891f171ee/-(o_o)-\0ef891f171ee:/usr/local/lib/python3.8/site-packages/dispatch# dispatch database restore --dump-file /root/dispatch-sample-data.dump
Traceback (most recent call last):
File "/usr/local/bin/dispatch", line 8, in <module>
sys.exit(entrypoint())
File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 843, in entrypoint
dispatch_cli()
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/dispatch/cli.py", line 511, in restore_database
from sh import psql, createdb
ImportError: cannot import name 'psql' from 'sh' (/usr/local/lib/python3.8/site-packages/sh.py)
dispatch server config
command, or show_config()
in https://github.com/Netflix/dispatch/blob/develop/src/dispatch/cli.py#L804, shows no configs when dispatch is brought up via docker-compose, as all configs are read from system environment variables, not local .env
file.
Additionally, starlette.config.Config.get()
can take default value, but show_config()
ignores that, or it prints only explicitly configured values. What I really expect is to print what dispatch interpreted given configurations (i.e. cast=...
should be considered somehow). I don't mind how .env file is parsed.
I haven't dig internals of dispatch, but what I expect is something in pseudo-code:
from dispatch.config import config
core_configs = config.get_configs()
table = [item for item in core_configs.items()]
for p in plugins.all():
plugin_configs = p.get_configs()
table += [item for item in plugin_configs.items()]
click.secho(tabulate(table, ...
This means, config.py
and each plugins are supposed to implement get_configs()
function, but it shouldn't be hard.
With master branch your internal pypi server could not be reach.
Line 112 in 985335d
dispatch/src/dispatch/config.py
Line 50 in eabd95b
Opinion: Would be a bit nicer if the python vars had same name as the env vars.
i.e. env var also be DISPATCH_AUTH_HEADER_KEY, or vice versa.
Hi there,
Our team is currently reviewing incident command tools to replace our in house built one. We'd like to empower teams throughout our organisation to create and run incidents themselves. I was hoping that you could help me understand what would be involved in us adding the following features, and whether we could use the current plugin system for it?
Thanks a lot,
Laurence
We're facing more issues. We have been unable to get this thing up and running in over a week.
Our latest error is:
ValueError: Could not deserialize key data.
ERROR: Unable to import dispatch.plugins.dispatch_google.groups.plugin.GoogleGroupParticipantGroupPlugin. Reason: Could not deserialize key data.
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/dispatch/common/managers.py", line 61, in all
results.append(cls())
File "/usr/local/lib/python3.8/site-packages/dispatch/plugins/dispatch_google/groups/plugin.py", line 122, in init
self.client = get_service("admin", "directory_v1", scopes)
File "/usr/local/lib/python3.8/site-packages/dispatch/plugins/dispatch_google/common.py", line 39, in get_service
credentials = service_account.Credentials.from_service_account_file(
File "/usr/local/lib/python3.8/site-packages/google/oauth2/service_account.py", line 217, in from_service_account_file
info, signer = _service_account_info.from_filename(
File "/usr/local/lib/python3.8/site-packages/google/auth/_service_account_info.py", line 74, in from_filename
return data, from_dict(data, require=require)
File "/usr/local/lib/python3.8/site-packages/google/auth/_service_account_info.py", line 55, in from_dict
signer = crypt.RSASigner.from_service_account_info(data)
File "/usr/local/lib/python3.8/site-packages/google/auth/crypt/base.py", line 113, in from_service_account_info
return cls.from_string(
File "/usr/local/lib/python3.8/site-packages/google/auth/crypt/_cryptography_rsa.py", line 146, in from_string
private_key = serialization.load_pem_private_key(
File "/usr/local/lib/python3.8/site-packages/cryptography/hazmat/primitives/serialization/base.py", line 16, in load_pem_private_key
return backend.load_pem_private_key(data, password)
File "/usr/local/lib/python3.8/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 1085, in load_pem_private_key
return self._load_key(
File "/usr/local/lib/python3.8/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 1315, in _load_key
self._handle_key_loading_error()
File "/usr/local/lib/python3.8/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 1373, in _handle_key_loading_error
raise ValueError("Could not deserialize key data.")
ValueError: Could not deserialize key data.
INFO: Started server process [1]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
We're using the Google PEM file, and we've tried several variations: with new-lines, without, base64ed, etc. But we cannot launch this thing.
Can we get a full working .env
file so we can back-trace the config from there and figure this out? The current documentation is not very helpful.
Originally posted by @ayush-sharma in #55 (comment)
1.- Required plugins added.
2.- Dispatch built with success.
3.- UI accesible.
4.- Documents, Service, Incident types available to be created by the UI.
But no able to save incidents, getting some 500 and 422 error codes.
Tracking the container logs for those errors I've got:
docker logs 60a0c55565ac -f --until=2s
No metric providers specified metrics will not be sent.
WARNING: Unable to import fbprophet, some metrics will not be usable.
INFO: Started server process [1]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
Recreating the error / bug when saving the incident using the UI:
INFO: 192.168.169.11:49991 - "GET /api/v1/incidents/metric/forecast/all HTTP/1.1" 500 Internal Server Error
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/uvicorn/protocols/http/httptools_impl.py", line 385, in run_asgi
result = await app(self.scope, self.receive, self.send)
File "/usr/local/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
return await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/applications.py", line 102, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 181, in __call__
raise exc from None
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 26, in __call__
await response(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/responses.py", line 197, in __call__
async for chunk in self.body_iterator:
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 56, in body_stream
task.result()
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 38, in coro
await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/sentry_asgi/middleware.py", line 22, in __call__
raise exc from None
File "/usr/local/lib/python3.8/site-packages/sentry_asgi/middleware.py", line 19, in __call__
await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 26, in __call__
await response(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/responses.py", line 197, in __call__
async for chunk in self.body_iterator:
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 56, in body_stream
task.result()
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 38, in coro
await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 26, in __call__
await response(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/responses.py", line 197, in __call__
async for chunk in self.body_iterator:
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 56, in body_stream
task.result()
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 38, in coro
await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/exceptions.py", line 82, in __call__
raise exc from None
File "/usr/local/lib/python3.8/site-packages/starlette/exceptions.py", line 71, in __call__
await self.app(scope, receive, sender)
File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 550, in __call__
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 376, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/fastapi/applications.py", line 149, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/applications.py", line 102, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 181, in __call__
raise exc from None
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.8/site-packages/starlette/exceptions.py", line 82, in __call__
raise exc from None
File "/usr/local/lib/python3.8/site-packages/starlette/exceptions.py", line 71, in __call__
await self.app(scope, receive, sender)
File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 550, in __call__
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 227, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/routing.py", line 41, in app
response = await func(request)
File "/usr/local/lib/python3.8/site-packages/fastapi/routing.py", line 165, in app
raw_response = await run_endpoint_function(
File "/usr/local/lib/python3.8/site-packages/fastapi/routing.py", line 121, in run_endpoint_function
return await run_in_threadpool(dependant.call, **values)
File "/usr/local/lib/python3.8/site-packages/starlette/concurrency.py", line 34, in run_in_threadpool
return await loop.run_in_executor(None, func, *args)
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.8/site-packages/dispatch/incident/views.py", line 144, in get_incident_forecast
return make_forecast(db_session=db_session, incident_type=incident_type)
File "/usr/local/lib/python3.8/site-packages/dispatch/incident/metrics.py", line 72, in make_forecast
dataframe = pd.DataFrame.from_dict(dataframe_dict)
NameError: name 'pd' is not defined
and as explained here:
Netflix/dispatch-docker#34 (comment)
In the file https://github.com/Netflix/dispatch/blob/develop/src/dispatch/incident/metrics.py
States (from line 18 to 22)
try:
from fbprophet import Prophet
import pandas as pd
except ImportError:
log.warning("Unable to import fbprophet, some metrics will not be usable.")
It seems that module fbprophet is missing and/or was not imported during the installation.
When cloning the repo and running the install.sh
the following error occurs:
Generating secret key...
sed: 1: "./.env": invalid command code .
It looks like L72 is the cause of this
I've started trying out Dispatch locally and kicking the tyres. I struggled to find the dashboard, the root URL takes you to the incident report.
I have managed to find its at /dashboard
by looking in the source code.
It would be good if this could be signposted in the docs.
please delete wrong repo
i would like to start implementing this feature if no one is already working on it.
starting an incident from slack and invite people from previously configured to the channel and then push all the chat history to JIRA or to dispatch also once the incident is created the ONCALL personal in pagerduty will get notified about it as well ( will get a page as well )
Slack should be configured accordingly to point the incident related commands to dispatch
The link in the README.md to the blog post (at the bottom) goes to https://github.com/Netflix/dispatch/blob/develop which 404's.
For new folks either evaluating dispatch or simply not in the position to set up oauth flows, we should support basic username/password authentication.
Roughly speaking this will require:
Unable to submit an incident, web container is throwing this, any help much appreciated.
Failed to load plugin zoom_conference. Reason: "Config 'ZOOM_API_USER_ID' is missing, and has no default."
WARNING: Unable to import fbprophet, some metrics will not be usable.
WARNING: Failed to load plugin zoom_conference. Reason: "Config 'ZOOM_API_USER_ID' is missing, and has no default."
INFO: Started server process [1]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: 9.211.132.131:56970 - "GET / HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/css/app.95d8a627.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56971 - "GET /static/css/chunk-vendors.54ed3ea1.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56972 - "GET /static/js/chunk-vendors.f9f651a8.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/js/app.1cedeeb4.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56974 - "GET /static/css/definition-table.ebaaeb9b.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56975 - "GET /static/css/definition-table~incident-dashboard~incident-table~incidents-report~incidents-status~individual-tabl~653abfa5.343268aa.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56976 - "GET /static/css/definition-table~incident-table~incidents-status~individual-table~knowledge-table~policy-table~routi~95f9995b.548fe094.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56974 - "GET /static/css/error-403.5125a358.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56976 - "GET /static/css/errors-404.de8a6bb5.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56975 - "GET /static/css/errors-500.bbf8b0ec.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56974 - "GET /static/css/incident-dashboard~incident-table.b315c2ce.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56976 - "GET /static/css/incident-table.641f6b2c.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/css/incidents-report.9d21c0d7.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56975 - "GET /static/css/individual-table.d5fecaa8.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56974 - "GET /static/css/knowledge-table.d5fecaa8.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56976 - "GET /static/css/policy-table.9d21c0d7.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/css/routing-table~service-table.1d27bab4.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56975 - "GET /static/css/tag-table.9d21c0d7.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56974 - "GET /static/css/team-table.d5fecaa8.css HTTP/1.1" 200 OK
INFO: 9.211.132.131:56976 - "GET /static/js/definition-table.a05461b5.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/js/definition-table~incident-dashboard~incident-table~incidents-report~incidents-status~individual-tabl~653abfa5.c90c4de1.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56975 - "GET /static/js/definition-table~incident-table~incidents-report~individual-table~knowledge-table~routing-table~serv~9c57d9df.7546f311.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56974 - "GET /static/js/definition-table~incident-table~incidents-status~individual-table~knowledge-table~policy-table~routi~95f9995b.bd2967ff.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56972 - "GET /static/js/error-403.8c1e8dbb.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56971 - "GET /static/js/errors-404.c705045c.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/js/errors-500.f59c3e98.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56976 - "GET /static/js/incident-dashboard.d1db1531.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56971 - "GET /static/js/incidents-report.1147d598.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/js/incident-dashboard~incident-table.fae29dec.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56975 - "GET /static/js/incident-table.9ff946a3.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56974 - "GET /static/js/incidents-status.7b1e502b.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56971 - "GET /static/js/individual-table.86a83a39.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56972 - "GET /static/js/knowledge-table.0d010175.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/js/policy-table.1ecce372.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56974 - "GET /static/js/routing-table.3c4ab2f4.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56971 - "GET /static/js/routing-table~service-table.efa19ce9.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56972 - "GET /static/js/search-result-list.f64f2c7c.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/js/service-table.4d71d004.js HTTP/1.1" 200 OK
INFO: 9.211.132.131:56975 - "GET /static/js/tag-table.05994c1a.js HTTP/1.1" 200 OK
ERROR: Unable to find slug: in self.all version 1: <generator object PluginManager.all at 0x7ff2d6813740> or version 2: <generator object PluginManager.all at 0x7ff2d6813740>
INFO: 9.211.132.131:56974 - "GET /api/v1/incident_types/?itemsPerPage=50&sortBy[]=name&descending[]=false HTTP/1.1" 500 Internal Server Error
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/uvicorn/protocols/http/httptools_impl.py", line 385, in run_asgi
result = await app(self.scope, self.receive, self.send)
File "/usr/local/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
return await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/applications.py", line 102, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 181, in __call__
raise exc from None
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 25, in __call__
response = await self.dispatch_func(request, self.call_next)
File "/usr/local/lib/python3.8/site-packages/dispatch/main.py", line 103, in dispatch
metric_provider.timer("server.call.elapsed", value=elapsed_time, tags=tags)
File "/usr/local/lib/python3.8/site-packages/dispatch/metrics.py", line 40, in timer
p = plugins.get(provider)
File "/usr/local/lib/python3.8/site-packages/dispatch/plugins/base/manager.py", line 43, in get
raise KeyError(slug)
KeyError: ''
INFO: 9.211.132.131:56972 - "GET /static/fonts/Roboto-Regular.73f0a88b.woff2 HTTP/1.1" 200 OK
INFO: 9.211.132.131:56970 - "GET /static/fonts/materialdesignicons-webfont.7fb0e378.woff2 HTTP/1.1" 200 OK
INFO: 9.211.132.131:56971 - "GET /static/fonts/Roboto-Medium.90d16760.woff2 HTTP/1.1" 200 OK
ERROR: Unable to find slug: in self.all version 1: <generator object PluginManager.all at 0x7ff2d47787b0> or version 2: <generator object PluginManager.all at 0x7ff2d47787b0>
INFO: 9.211.132.131:56975 - "GET /api/v1/incident_priorities/?sortBy[]=view_order&descending[]=false HTTP/1.1" 500 Internal Server Error
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/uvicorn/protocols/http/httptools_impl.py", line 385, in run_asgi
result = await app(self.scope, self.receive, self.send)
File "/usr/local/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
return await self.app(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/applications.py", line 102, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 181, in __call__
raise exc from None
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.8/site-packages/starlette/middleware/base.py", line 25, in __call__
response = await self.dispatch_func(request, self.call_next)
File "/usr/local/lib/python3.8/site-packages/dispatch/main.py", line 103, in dispatch
metric_provider.timer("server.call.elapsed", value=elapsed_time, tags=tags)
File "/usr/local/lib/python3.8/site-packages/dispatch/metrics.py", line 40, in timer
p = plugins.get(provider)
File "/usr/local/lib/python3.8/site-packages/dispatch/plugins/base/manager.py", line 43, in get
raise KeyError(slug)
KeyError: ''
What's the keyerror?
Any plans, or ways we can use Gsuite Chat and Meet instead of Slack and Zoom?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.