diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 64 |
1 files changed, 40 insertions, 24 deletions
@@ -1,39 +1,55 @@ -<a href="https://opendc.org/"> - <img src="https://opendc.org/img/logo.svg" alt="OpenDC logo" title="OpenDC" align="right" height="100" /> -</a> +## _Sunfish_: Enabling Predictive Analytics for Datacenters Through Digital Twinning -# OpenDC +_Sunfish_ is a system that creates the pipeline between the Datacenter and its Digital Twin. -Collaborative Datacenter Simulation and Exploration for Everybody +## Dependencies -[](/LICENSE.txt) -[](https://opendc.org/learn/category/documentation) -[](https://github.com/atlarge-research/opendc/releases) -[](https://github.com/atlarge-research/opendc/actions/workflows/build.yml) +_Sunfish_ is not a monolithic program. The entire ecosystem consists of: ------ +1. [OpenDC](https://opendc.org) version 2.4 +2. [Confluent Kafka](https://docs.confluent.io/kafka/overview.html) confluent version v4.39.0 +3. [PostgreSQL](https://www.postgresql.org/) version 18.4 +4. [Redis](https://redis.io/) version 9.1.1 +5. [Grafana](https://grafana.com/) version 13.1.0 -This repository is the home of the OpenDC project, a free and open-source platform for cloud datacenter simulation. +Be aware the project will only work with this OpenDC (_i.e.,_ in this repository) as there are hidden Maven dependencies. -## Latest Release +## Schema Registry +The Confluent ecosystem contains the Schema Registry, which enables seamless schema of the data interchange formats. +_Sunfish_ uses ProtoBuf (see `schema.proto`) file. +Each change to the `schema.proto` file must be updated with: +```bash +cd resources/experiments/ +protoc --java_out=/home/matt/git/opendc/opendc-common/src/main/java/ schema.proto +curl -X DELETE http://localhost:8081/subjects/postgres-topic-value +``` -All releases of OpenDC can be found [here](https://github.com/atlarge-research/opendc/releases). -The latest release will be marked _latest_. +## Confluent Configuration +First, see https://www.confluent.io/installation/. +Confluent JDBC sink and source (includes Postgres connector) files: +https://www.confluent.io/hub/confluentinc/kafka-connect-jdbc -## Documentation +By default, the Kafka topic is named `postgres_topic`. -You can find the OpenDC documentation [on the website](https://opendc.org). -The documentation is divided into several sections: +## Useful commands -* [Getting Started](https://opendc.org/learn/category/getting-started) -* [Tutorials](https://opendc.org/learn/category/tutorials) -* [Where to Get Support](https://opendc.org/community/support) -* [Contributing Guide](https://opendc.org/community/contributing) +To access a certain PostgreSQL database _e.g.,_ called "opendc": +`psql -d opendc` -You find information about the research projects and publications related to OpenDC in the [research section](https://opendc.org/research/publications). +This command selects everything from the topic which Kafka writes to. +`SELECT * FROM postgres_topic;` -The source code for the website is located in the [gh-pages branch](https://github.com/atlarge-research/opendc/tree/gh-pages). -Push to that branch to update the website. +Connect to Redis server via an excellent command-line tool: +`redis-cli -h localhost -p 6379` +Very useful tutorial https://redis.io/docs/latest/develop/data-types/streams/ +See also https://redis.io/docs/latest/develop/tools/cli/ + +The below command returns all items in the Redis stream +`XRANGE postgres_topic - +` +`XTRIM postgres_topic MAXLEN 0` + +To create a group for consumers to read from stream: +`XGROUP CREATE mystream mygroup 0` ## Contributing |
