Dashboard offers the insight of running tasks in Jina. With dashboard, one can analyze logs, design flows and view Jina Hub images.
🌟 Features:
Jina “Hello, World” is a simple demo of image neural search for Fashion-MNIST.
Run the following command in the console
(Python >=3.7 required)
JINA_LOG_PROFILING=1 jina hello-world
…or if you use Docker (no install required)
docker run -e "JINA_LOG_PROFILING=1" -p 5000:5000 jinaai/jina:devel hello-world --logserver
Open https://dashboard.jina.ai in your browser
It should start streaming. If not, please refer to this step.
Set environment variable JINA_LOG_PROFILING
to 1
to enable Task tab in the dashboard.
Log server is a helper thread in Jina flow. It exposes HTTP endpoints to the public which the dashboard can use to fetch logs, visualize the flow.
By default the log server is disabled. To enable it you can,
| If you use Flow API in Python, |
from jina.flow import Flow
f = (Flow(logserver=True)
.add(...)
.add(...))
with f.build() as fl:
fl.index(...)
|
| …or write a Flow from YAML |
# myflow.yml
!Flow
with:
logserver: true
pods:
...
f = Flow.load_config('myflow.yml')
with f.build() as fl:
fl.index(...)
|
| …or start a Flow from CLI |
jina flow --logserver --yaml-path myflow.yml
|
| …or start a Flow with Docker Container |
docker run -p 5000:5000 jina flow --logserver ...
|
Either way, if you see the following logs show up in the console, then your log server is successfully running. You can now move to the next step.
Go to: https://dashboard.jina.ai
Click on the globe icon on the top-left corner to connect to the log server.
It should turn into a green check mark, which means the connection is success.
You should now see the log-streaming and flow visualization.
If it has a red cross, it means the connection is lost or the endpoint is not set correctly. Please move to the next step for instruction.
By default the configurations of the log server is as follows:
host: 0.0.0.0
port: 5000
endpoints:
log: /stream/log # fetching log in SSE stream
profile: /stream/profile # fetching profiling log in SSE stream
yaml: /data/yaml # get the YAML spec of a flow
shutdown: /action/shutdown # shutdown the log server
ready: /status/ready # tell if the log server is ready, return 200 if yes
You can customize the endpoints of the log server via a YAML, say mylogserver.yml
. Then pass it to the Flow API via
| If you use Flow API in Python, |
f = Flow(logserver=True, logserver_config='mylogserver.yml')
|
| …or write a Flow from YAML |
!Flow
with:
logserver: true
logserver_config: mylogserver.yml
|
| …or start a Flow from CLI |
jina flow --logserver --logserver-config mylogserver.yml ...
|
| …or start a Flow with Docker Container |
docker run -p PORT:PORT -v "$(PWD)/mylogserver.yml:/mylogserver.yml" jina flow --logserver --logserver-config /mylogserver.yml ...
|
Don’t forget to update endpoint in the dashboard accordingly.
One can self-host a dashboard locally.
git clone https://github.com/jina-ai/dashboard.git && cd dashboard
.yarn
.node testServer
http://localhost:5000
by defaultyarn start
http://localhost:3000
by defaultyarn build
node dashboard
http://localhost:3030
by defaultWe welcome all kinds of contributions from the open-source community, individuals and partners. Without your active involvement, Jina can’t be successful.
The following resources help you to make a good first contribution:
Author: jina-ai
Demo: https://dashboard.jina.ai/#/logs
Source Code: https://github.com/jina-ai/dashboard
#reactjs #react #javascript