Giter VIP home page Giter VIP logo

nagios-alerta's Introduction

Alerta Release 9.1

Actions Status Slack chat Coverage Status Docker Pulls

The Alerta monitoring tool was developed with the following aims in mind:

  • distributed and de-coupled so that it is SCALABLE
  • minimal CONFIGURATION that easily accepts alerts from any source
  • quick at-a-glance VISUALISATION with drill-down to detail

webui


Requirements

Release 9 only supports Python 3.9 or higher.

The only mandatory dependency is MongoDB or PostgreSQL. Everything else is optional.

  • Postgres version 13 or better
  • MongoDB version 6.0 or better

Installation

To install MongoDB on Debian/Ubuntu run:

$ sudo apt-get install -y mongodb-org
$ mongod

To install MongoDB on CentOS/RHEL run:

$ sudo yum install -y mongodb
$ mongod

To install the Alerta server and client run:

$ pip install alerta-server alerta
$ alertad run

To install the web console run:

$ wget https://github.com/alerta/alerta-webui/releases/latest/download/alerta-webui.tar.gz
$ tar zxvf alerta-webui.tar.gz
$ cd dist
$ python3 -m http.server 8000

>> browse to http://localhost:8000

Docker

Alerta and MongoDB can also run using Docker containers, see alerta/docker-alerta.

Configuration

To configure the alertad server override the default settings in /etc/alertad.conf or using ALERTA_SVR_CONF_FILE environment variable::

$ ALERTA_SVR_CONF_FILE=~/.alertad.conf
$ echo "DEBUG=True" > $ALERTA_SVR_CONF_FILE

Documentation

More information on configuration and other aspects of alerta can be found at http://docs.alerta.io

Development

To run in development mode, listening on port 5000:

$ export FLASK_APP=alerta FLASK_DEBUG=1
$ pip install -e .
$ flask run

To run in development mode, listening on port 8080, using Postgres and reporting errors to Sentry:

$ export FLASK_APP=alerta FLASK_DEBUG=1
$ export DATABASE_URL=postgres://localhost:5432/alerta5
$ export SENTRY_DSN=https://8b56098250544fb78b9578d8af2a7e13:[email protected]/153768
$ pip install -e .[postgres]
$ flask run --debugger --port 8080 --with-threads --reload

Troubleshooting

Enable debug log output by setting DEBUG=True in the API server configuration:

DEBUG=True

LOG_HANDLERS = ['console','file']
LOG_FORMAT = 'verbose'
LOG_FILE = '$HOME/alertad.log'

It can also be helpful to check the web browser developer console for JavaScript logging, network problems and API error responses.

Tests

To run the all the tests there must be a local Postgres and MongoDB database running. Then run:

$ TOXENV=ALL make test

To just run the Postgres or MongoDB tests run:

$ TOXENV=postgres make test
$ TOXENV=mongodb make test

To run a single test run something like:

$ TOXENV="mongodb -- tests/test_search.py::QueryParserTestCase::test_boolean_operators" make test
$ TOXENV="postgres -- tests/test_queryparser.py::PostgresQueryTestCase::test_boolean_operators" make test

Cloud Deployment

Alerta can be deployed to the cloud easily using Heroku https://github.com/alerta/heroku-api-alerta, AWS EC2 https://github.com/alerta/alerta-cloudformation, or Google Cloud Platform https://github.com/alerta/gcloud-api-alerta

License

Alerta monitoring system and console
Copyright 2012-2023 Nick Satterly

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

nagios-alerta's People

Contributors

eduardohki avatar pad92 avatar satterly avatar sergioramirezibanez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nagios-alerta's Issues

Nagios crash after reload

Issue Summary
Nagios with nagios-alerta crash after reload

Environment

  • OS: Centos 7
  • Nagios: 4.4.9
  • nagios-alerta: 5.1.0

Steps:

  1. I installed nagios-alerta from source: make nagios4 && make install
  2. i add configuration to nagios.cfg: broker_module=/usr/lib/nagios/alerta-neb.o https://alerta.server env=IT key=ALERTA_KEY hard_only=1
  3. start nagios with: systemcl start nagios everything works fine. Alerta shows alerts from nagios.
  4. after reload with systemctl reload nagios nagios always crash.

Nagios.log with debug on

[1678370296] alerta: Initialising Nagios-Alerta Gateway module, v5.0.1
[1678370296] alerta: debug is on
[1678370296] alerta: states=Hard/Soft
[1678370296] alerta: Forward service checks, host checks and downtime to https://alerta.xyz/api
[1678370296] Event broker module '/usr/lib/nagios/alerta-neb.o' initialized successfully.
....
[1678370296] alerta: Downtime started.
[1678370296] alerta: {"origin": "nagios/nagios.server", "resource": "xxxx", "event": ......}
[1678370296] alerta: [curl] About to connect() to alerta.xyz port 443 (#0)
[1678370296] alerta: [curl]   Trying 10.x.x.y...
[1678370296] alerta: [curl] Connected to alerta.xyz (10.x.x.y) port 443 (#0)
[1678370296] alerta: [curl] Initializing NSS with certpath: sql:/etc/pki/nssdb
[1678370296] Caught SIGSEGV, shutting down...
[1678370296] Caught SIGTERM, shutting down...

Too many `TIME_WAIT` connections

experiencing many time_wait connections with nagios neb module. nagios and alerta on are 2 separate hosts. nagios hosts has 1000's of time_wait connections but alerta has none. any ideas?

@druchoo

http user-agent value. possible to define?

Hi,

How to define default user-agent value? I would tell it empty according to my http logs.
Now I'm trying to organize backend management in varnish (I mean route http requests)
nagios -> haproxy -> varnish -> alerta

Thanks a lot for your help.

Oleksandr

Filter for HARD state only

Is there a way to filter out SOFT state checks, so only HARD states are shown in Alerta?

If not yet, this would be a great feature.

Question - Icinga2 Support

Hi,

Unfortunately Icinga2 dropped neb support for 2.x. I'm running around 5-6 Icinga2 boxes and need to pipe alerts to Alerta like I'm doing with Prometheus.

When an Icinga2 notification fires, it triggers a Python script which does some magic and sends info off to our ticketing system. Would it be possible to do the same with Icinga2, possibly to a webhook? I notice there's no generic webhook, though, so I'm not sure if that's possible? Or am I going to have to install the alerta CLI on each machine and interact that way?

Heartbeat timeout for Nagios-Alerta Gateway

Hello Nick, thank you for your work on Alerta.

The Heartbeat timeout seems to default to 24 hours.

It would be handy to have a way to set the heartbeat timeout to something like 5 or 10 minutes.
e.g.
broker_module=/usr/lib/nagios/alerta-neb.o http://alertahost:8080/api heartbeat_timeout=300

I searched the code a bit and I didn't see anything in the documentation. Sorry if this is already a feature or I've missed something.
-Ryan

Alerta log on Livestatus and error

Hello
Issue Summary
When Alerta Neb is initialised, it log in nagios.log with Livestatus message and some error

Environment

  • OS: Linux
  • Nagios Alerta version: [5.0.1]

To Reproduce
Steps to reproduce the behavior:

  1. stop/start nagios
  2. look on nagios.log
  3. See error (include command output)

Expected behavior
No Livestatus message with "alerta" as NEB module
error %s assigned

Screenshots
[1627446602] alerta: NEB callbacks for host and service checks successfully de-registered. Bye.
[1627446602] Event broker module '/usr/lib/nagios/alerta-neb.o' deinitialized successfully.
[1627446602] Event broker module '/usr/lib64/mod_gearman/mod_gearman_nagios4.o' deinitialized successfully.
[1627446602] alerta: deinitializing
[1627446602] alerta: Waiting for main to terminate...
[1627446602] alerta: Socket thread has terminated
[1627446602] alerta: error: %s
[1627446602] alerta: Waiting for client threads to terminate...
[1627446602] alerta: Logfile cache: flushing complete cache.
[1627446602] Event broker module '/usr/local/lib/mk-livestatus/livestatus128.o' deinitialized successfully.

[1627446602] Nagios 4.4.5 starting... (PID=258423)
[1627446602] Local time is Wed Jul 28 06:30:02 CEST 2021
[1627446602] LOG VERSION: 2.0
[1627446602] qh: Socket '/var/spool/nagios/cmd/nagios.qh' successfully initialized
[1627446602] qh: core query handler registered
[1627446602] qh: echo service query handler registered
[1627446602] qh: help for the query handler registered
[1627446602] wproc: Successfully registered manager as @wproc with query handler
[1627446602] wproc: Registry request: name=Core Worker 258425;pid=258425
.....
[1627446602] wproc: Registry request: name=Core Worker 258436;pid=258436
[1627446603] alerta: Initialising Nagios-Alerta Gateway module, v5.0.1
[1627446603] alerta: debug is off
[1627446603] alerta: states=Hard/Soft
[1627446603] alerta: Forward service checks, host checks and downtime to http://xxxxxxxxxxxxxxx:80/api
[1627446603] Event broker module '/usr/lib/nagios/alerta-neb.o' initialized successfully.
[1627446603] mod_gearman: initialized version 3.0.9 (libgearman 0.33)
[1627446603] Event broker module '/usr/lib64/mod_gearman/mod_gearman_nagios4.o' initialized successfully.
[1627446603] alerta: Livestatus %s by Mathias Kettner. Socket: '%s'
[1627446603] alerta: Please visit us at http://mathias-kettner.de/
[1627446603] alerta: Hint: please try out OMD - the Open Monitoring Distribution
[1627446603] alerta: Please visit OMD at http://omdistro.org
[1627446603] alerta: Finished initialization. Further log messages go to %s

[1627446603] Event broker module '/usr/local/lib/mk-livestatus/livestatus128.o' initialized successfully.

without alerta-neb
[1627457291] livestatus: Livestatus 1.2.8p25 by Mathias Kettner. Socket: '/usr/local/nagios/var/rw/live'
[1627457291] livestatus: Please visit us at http://mathias-kettner.de/
[1627457291] livestatus: Hint: please try out OMD - the Open Monitoring Distribution
[1627457291] livestatus: Please visit OMD at http://omdistro.org
[1627457291] livestatus: Finished initialization. Further log messages go to /u01/app/nagios/var/log/livestatus.log

Additional context
Uses with mod_gearman and livestatus (1.2.8)

Thank's

Filter for services and hosts with notifications_enabled=0

Is your feature request related to a problem? Please describe.
Service or host could have notifications_enabled=0 flag in Nagios to skip notification (i.e. non-production host or not important service). Currently, NEB ignores notifications_enabled=0 flag and show alerts for all services or hosts.

Describe the solution you'd like
Flag in NEB configuration allowing to define whether notifications_enabled flag should be taken into account while sending events to alerta.

Describe alternatives you've considered
None at the moment.

Can't send alert from Nagios to Alerta

Hi All,

I have installed Alerta and Nagios on different servers.

On the first server (Alerta) I follow the steps on official documentation on Ubuntu 16 (http://docs.alerta.io/en/latest/tutorials.html#tutorials). It run and I can send alarm from command line on localhost.

On second server I've installed Nagios Core 4 and Nagios-alerta from this repo.
But I can't send any alarm.
I try some configuration but I receive different error:

  1. broker_module=/usr/lib/nagios/alerta-neb.o http://10.211.55.10:80/api key=API_KEY --> [1544546431] alerta: HTTP server error (status=500)
  2. broker_module=/usr/lib/nagios/alerta-neb.o http://10.211.55.10:8080 key=API_KEY -->alerta: curl_easy_perform() failed: Couldn't connect to server (on Alerta server any service on 8080 port)
  3. broker_module=/usr/lib/nagios/alerta-neb.o http://10.211.55.10 key=API_KEY -->
    [1544546544] alerta: HTTP server error (status=404)

where I wrong?

Thx.

naemon can't start - event broker API issue

Naemon can't start with alerta-neb.o.

  • OS: Ubuntu Server 20.04
  • Naemon: 1.2.4

Steps to reproduce the behavior:

apt-get install -y git-core curl gcc make libcurl4-openssl-dev libjansson-dev libglib2.0-dev pkg-config
git clone https://github.com/alerta/nagios-alerta.git
cd nagios-alerta
make naemon
sudo -s
make install
echo "broker_module=/usr/lib/nagios/alerta-neb.o" >> /etc/naemon/naemon.cfg
systemctl restart naemon

Naemon won't start. In /var/log/naemon/naemon.log you can find:

[1625560541] Error: Module '/usr/lib/nagios/alerta-neb.o' is using an old or unspecified version of the event broker API.  Module will be unloaded.
[1625560541] Event broker module '/usr/lib/nagios/alerta-neb.o' deinitialized successfully.
[1625560541] Error: Failed to load module '/usr/lib/nagios/alerta-neb.o'.

broker module not working with Naemon

with nagios4/nagios3 build the log:

[1540218035] Error: Could not load module '/usr/lib/nagios/alerta-neb.o' -> /usr/lib/nagios/alerta-neb.o: undefined symbol: write_to_all_logs
[1540218035] Error: Failed to load module '/usr/lib/nagios/alerta-neb.o'.

Nagios 4.0.7

I am running Nagios v4.0.7 on my CentOS 5.10 x64 linux machine. I have tried your module, it gets compiled and installed. Unfortunatelly when I try to add it to nagios and restart, nagios fails to start and I get this error:

Aug 14 09:24:44 zira nagios: Error: Module '/usr/lib64/nagios/alerta-neb.o' is using an old or unspecified version of the event broker API. Module will be unloaded.
Aug 14 09:24:44 zira nagios: Event broker module '/usr/lib64/nagios/alerta-neb.o' deinitialized successfully.
Aug 14 09:24:44 zira nagios: Error: Failed to load module '/usr/lib64/nagios/alerta-neb.o'.
Aug 14 09:24:44 zira nagios: Error: Module loading failed. Aborting.

I suspect that this is because the alerta module was created for nagios 3.x and not for nagios 4.x. Is there anyway this module can be modified to run on nagios 4.x?

Thanks,

Nagios >=4.4.3

Issue Summary
My nagios process is crashing if I enable the event broker,
can you verify if nagios >= 4.4.3 should work?

Environment

  • OS: Linux

  • API version: Newest

  • Deployment: Docker

  • Database: Postgres

Windows Disks JSON issue

Hello,

I'm having problems getting Windows disks events in Alerta, where a message example is below:

Aug 19 01:13:44 swone nagios: SERVICE ALERT: EKWS-DB;D Drive Usage;WARNING;SOFT;1;d:\ - total: 150.00 Gb - used: 122.97 Gb (82%) - free 27.02 Gb (18%)
Aug 19 01:13:44 swone nagios: {"origin":"nagios3/swone.expresso.net.br","resource":"EKWS-DB","event":"D Drive Usage","group":"Nagios","severity":"warning","environment":"Production","service":["Platform"],"tags":["check=Active"],"text":"d:\ - total: 150.00 Gb - used: 122.97 Gb (82%) - free 27.02 Gb (18%)","value":"1/3 (Soft)","type":"nagiosServiceAlert","rawData":"'d:\ Used Space'=122.97Gb;120.00;142.50;0.00;150.00"}#012#015

How can I replace the ":" character to prevent a broken JSON?

System time change possibly causing SIGSEV

[1440722291] [alerta] Heartbeat service check OK.
[1440722291] { "origin": "nagios/localhost", "type": "Heartbeat", "tags": ["3.2.0"] }
[1440722291] [alerta] HTTP response status=201
[1440722301] [alerta] Service check received.
[1440722301] {"origin":"nagios/vagrant-ubuntu-trusty-64","resource":"localhost","event":"Current Users","group":"Nagios","severity":"normal","environment":"Production","service":["Platform"],"tags":["check=Active"],"text":"USERS OK - 2 users currently logged in","value":"1/4 (Hard)","type":"nagiosServiceAlert","rawData":"users=2;20;50;0"}
[1440722301] [alerta] HTTP response status=201
[1440722341] [alerta] Service check received.
[1440722341] {"origin":"nagios/vagrant-ubuntu-trusty-64","resource":"localhost","event":"Disk Space","group":"Nagios","severity":"critical","environment":"Production","service":["Platform"],"tags":["check=Active"],"text":"DISK CRITICAL - free space: /vagrant 22855 MB (4% inode=100%):","value":"4/4 (Hard)","type":"nagiosServiceAlert","rawData":"/=2036MB;32227;36255;0;40284 /sys/fs/cgroup=0MB;0;0;0;0 /dev=0MB;392;441;0;491 /run=0MB;79;89;0;99 /run/lock=0MB;4;4;0;5 /run/shm=0MB;396;446;0;496 /run/user=0MB;80;90;0;100 /vagrant=453426MB;381025;428653;0;476282"}
[1440722341] [alerta] HTTP response status=201
[1440722351] [alerta] Heartbeat service check OK.
[1440722351] { "origin": "nagios/localhost", "type": "Heartbeat", "tags": ["3.2.0"] }
[1440722351] [alerta] HTTP response status=201
[1440748786] Warning: A system time change of 0d 7h 20m 33s (forwards in time) has been detected.  Compensating...
[1440748786] HOST DOWNTIME ALERT: localhost;STARTED;No comment
[1440748786] Caught SIGSEGV, shutting down...

Do not send Nagios "Command Line" to alerta

Is your feature request related to a problem? Please describe.
Nagios commands may contain sensitive informations. So it can be useful to have feature to prevent sending "Command Line" to Alerta.

all event in /var/log/messages

Hello
Issue Summary
When Alerta Neb is running, it log all event (curl response ?) in /var/log/messages even if notin debug mode
/var/log/messages before : 10Mo after 700Mo !!

Environment

OS: Linux
Nagios Alerta version: [5.0.1]

To Reproduce
Steps to reproduce the behavior:

stop/start nagios
look on /var/log/messages
See messages

Expected behavior
No messages in /var/log/messages but in /var/log/alerta/alerta.log with verbosity level

Screenshots for one event
Jul 26 15:20:40 nagios: {
Jul 26 15:20:40 nagios: "alert": {
Jul 26 15:20:40 nagios: "attributes": {
Jul 26 15:20:40 nagios: "CI source": "xxxxxxxxxxxxxxxxxxxxxx.fr",
Jul 26 15:20:40 nagios: "Fiche_Consigne": "<a href=hxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx target="_blank">Nagios.pdf",
Jul 26 15:20:40 nagios: "Sonde_Nagios": "check_specifique_UMANIS_JOBQ_Ctrl_Alert_Lost",
Jul 26 15:20:40 nagios: "checkCommand": "check_specifique_UMANIS_JOBQ_Ctrl_Alert_Lost",
Jul 26 15:20:40 nagios: "commandLine": "/opt/nrpe/libexec/check_ACT400_liste.pl "ZZ2023CD" xxxxxxxxxxxxxxxxxxxxxxxxxx "OPT0001" "OPT0002""
Jul 26 15:20:40 nagios: },
Jul 26 15:20:40 nagios: "correlate": [],
Jul 26 15:20:40 nagios: "createTime": "2021-07-20T09:05:13.536Z",
Jul 26 15:20:40 nagios: "customer": "xxxxxxxxxxxxxxx",
Jul 26 15:20:40 nagios: "duplicateCount": 5,
Jul 26 15:20:40 nagios: "environment": "recette",
Jul 26 15:20:40 nagios: "event": "job-ctrl-alert-lost .job-ctrl-alert-lost",
Jul 26 15:20:40 nagios: "group": "Nagios",
Jul 26 15:20:40 nagios: "history": [
Jul 26 15:20:40 nagios: {
Jul 26 15:20:40 nagios: "event": "job-ctrl-alert-lost .job-ctrl-alert-lost",
Jul 26 15:20:40 nagios: "href": "/api/alert/883ab417-b890-49e7-a9bb-6bd9eb24606a",
Jul 26 15:20:40 nagios: "id": "883ab417-b890-49e7-a9bb-6bd9eb24606a",
Jul 26 15:20:40 nagios: "severity": "normal",
Jul 26 15:20:40 nagios: "status": "closed",
Jul 26 15:20:40 nagios: "text": "OK : OPT0001 - Aucune alerte non transmise \u00e0 OMi",
Jul 26 15:20:40 nagios: "timeout": 86400,
Jul 26 15:20:40 nagios: "type": "new",
Jul 26 15:20:40 nagios: "updateTime": "2021-07-20T09:05:13.536Z",
Jul 26 15:20:40 nagios: "user": "adm-randreet",
Jul 26 15:20:40 nagios: "value": "1/2 (Hard)"
Jul 26 15:20:40 nagios: }
Jul 26 15:20:40 nagios: ],
Jul 26 15:20:40 nagios: "href": "/api/alert/883ab417-b890-49e7-a9bb-6bd9eb24606a",
Jul 26 15:20:40 nagios: "id": "883ab417-b890-49e7-a9bb-6bd9eb24606a",
Jul 26 15:20:40 nagios: "lastReceiveId": "ddffe313-c72a-4eb9-ac01-a1f1798c7f59",
Jul 26 15:20:40 nagios: "lastReceiveTime": "2021-07-26T13:20:40.403Z",
Jul 26 15:20:40 nagios: "origin": "nagios/xxxxxxxxxxxxxx",
Jul 26 15:20:40 nagios: "previousSeverity": "indeterminate",
Jul 26 15:20:40 nagios: "rawData": "",
Jul 26 15:20:40 nagios: "receiveTime": "2021-07-20T09:05:13.546Z",
Jul 26 15:20:40 nagios: "repeat": true,
Jul 26 15:20:40 nagios: "resource": "xxxxxxxxxxxxxxxxxxxxxxx",
Jul 26 15:20:40 nagios: "service": [
Jul 26 15:20:40 nagios: "NAGIOS"
Jul 26 15:20:40 nagios: ],
Jul 26 15:20:40 nagios: "severity": "normal",
Jul 26 15:20:40 nagios: "status": "closed",
Jul 26 15:20:40 nagios: "tags": [
Jul 26 15:20:40 nagios: "Active"
Jul 26 15:20:40 nagios: ],
Jul 26 15:20:40 nagios: "text": "OK : OPT0001 - Aucune alerte non transmise \u00e0 OMi",
Jul 26 15:20:40 nagios: "timeout": 86400,
Jul 26 15:20:40 nagios: "trendIndication": "noChange",
Jul 26 15:20:40 nagios: "type": "nagiosServiceAlert",
Jul 26 15:20:40 nagios: "updateTime": "2021-07-20T09:05:13.546Z",
Jul 26 15:20:40 nagios: "value": "1/2 (Hard)"
Jul 26 15:20:40 nagios: },
Jul 26 15:20:40 nagios: "id": "883ab417-b890-49e7-a9bb-6bd9eb24606a",
Jul 26 15:20:40 nagios: "status": "ok"
Jul 26 15:20:40 nagios: }

Additional context
Uses with mod_gearman and livestatus (1.2.8)

Thank's

Invalid http call if long_desc is multiline

If the field long_desc is multiline the http call is invalid causing alerta api to returrn 400.

Example:
[1520768752] [alerta] Service check received.
[1520768752] {"origin":"nagios/op5","resource":"db103","event":"SAP HANA Services","group":"Nagios","severity":"normal","environment":"Production","service":["Platform"],"tags":["check=Active"],"text":"daemon:YES
nameserver:YES
preprocessor:YES
webdispatcher:YES
compileserver:YES
indexserver:YES
","value":"1/3 (Hard)","type":"nagiosServiceAlert","rawData":""}
[1520768752] [alerta] HTTP server error (status=400)

Code commit much memory and can't free it

Hi,
The past week we installed it on check-mk server. The integration works fine but every 24 hours the service was going down. When we were saw the graphics, we saw that the aplication commit on progresive mode memory but doen't free it
Can you help us?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.