{"id":17843282,"url":"https://github.com/philmod/serverdata","last_synced_at":"2025-04-02T15:40:38.377Z","repository":{"id":2686342,"uuid":"3679028","full_name":"Philmod/ServerData","owner":"Philmod","description":"This is a web server that listens to datas (/datas) in JSON format, and stores it as time-series in Apache Cassandra.","archived":false,"fork":false,"pushed_at":"2012-07-27T13:29:38.000Z","size":576,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-08T06:29:47.057Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Philmod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-03-10T11:20:59.000Z","updated_at":"2020-08-12T06:33:40.000Z","dependencies_parsed_at":"2022-08-29T10:02:42.771Z","dependency_job_id":null,"html_url":"https://github.com/Philmod/ServerData","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Philmod%2FServerData","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Philmod%2FServerData/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Philmod%2FServerData/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Philmod%2FServerData/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Philmod","download_url":"https://codeload.github.com/Philmod/ServerData/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246846833,"owners_count":20843437,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-27T21:23:25.011Z","updated_at":"2025-04-02T15:40:38.355Z","avatar_url":"https://github.com/Philmod.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"ServerData\r\n==========\r\n\r\nThis is a node.js web server that listens to datas (/datas) in JSON format, and stores it as time-series in Apache Cassandra.\r\n\r\nThe goal is storing datas coming from several systems that send datas frequently.\r\n\r\nJSON Datas\r\n----------\r\n- system name (a column family per system),\r\n- timestamp or time (there is a conversion function to transform to the javascript format)\r\n- all the other properties are variable names and values\r\n\r\nData Model (Cassandra)\r\n----------------------\r\n- One Column Family (CF) per system\r\n- Row keys: \r\n  - Raw datas, one row per day : var1-20120229\r\n  - Roll-up : var1-rollup-m-20120229 (one data per minute, one row per day), var1-rollup-h-20120200 (one data per hour, one row per month), var1-rollup-d-20120000 (one data per day, one row per year)\r\n- The column name is a timestamp\r\n- The column value is the data for the raw datas, and a JSON string for the roll-up: {value: 0.123, count: 5, max: 0.25, min: 0.02}\r\n\r\nSystem example\r\n--------------\r\nhttps://github.com/Philmod/data2server\r\n\r\nUse\r\n---\r\napp.js\r\n\r\nDependencies\r\n------------\r\n- Apache Cassandra: database for the time-series datas, users and systems informations\r\n- Redis: advanced key-value store for sessions and pub/sub\r\n- Express.js: web development framework\r\n- Socket.io: websocket API\r\n- Backbone.js: MVC\r\n- Twitter bootstrap: simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions\r\n- Highcharts: interactive Javascript charts\r\n\r\nContribute\r\n----------\r\nPlease feel free to contribute.\r\n\r\nTODO list\r\n---------\r\n- Tests\r\n- A web page to visualize the datas: each client have a login/pass to analyze its systems, an admin page\r\n- Authentification\r\n- Pub/Sub: when a system sends datas to the server, broadcast to the connected clients (socket.io)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilmod%2Fserverdata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilmod%2Fserverdata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilmod%2Fserverdata/lists"}