Coder Social home page Coder Social logo

gametuner / collector Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 75 KB

GameTuner Scala Stream Collector is project for collecting raw events from tracker

License: Apache License 2.0

Scala 100.00%
analytics data data-pipeline collector gaming gaming-analytics snowplow big-data-analytics gametuner scala

collector's Introduction

GameTuner Scala Stream Collector

Overview

GameTuner Scala Stream Collector is a scala application for collecting raw events over HTTP. Collector is build upon Snowplow Scala Stream Collector. It is a part of the GameTuner project, which is a project for collecting and analyzing game data. The collector is responsible for collecting data from the game and sending it to the GameTuner pipeline.

Since GameTuner project is build for GCP (Google Cloud Platform), the collector is build to be deployed on GCP. For that reason only pubsub module of application is supported.

Requirements

For building and running the application you need:

  • sbt >= 1.5.6
  • scala = 2.12.10
  • jdk = 11

Installation

Run locally

Once you open the project in your IDE, first you should build the project by running sbt 'project pubsub' assembly in the root of the project.

Since the application is build for GCP, you should have a GCP account and a project created, because proceesed events should be streamed to pubsub topic. Once you create a project and a topic, you should setup config file for the application. Config file is located in config/collector.conf. You should set the following parameters:

  • collector.streams.good - pubsub tobic for good events
  • collector.streams.bad - pubsub topic for bad events
  • collector.streams.sink.googleProjectId - GCP project id

After that you can run the application by running the main class GooglePubSubCollector.scala in pubsub module or by running the jar file with the following command:

java -jar <path-to-jar> --config /config/collector.config

Collector is now running and listening for events on the specified port, bu default it is 9292. You can send events to the collector by sending POST request to the collector url http://0.0.0.0:9292/com.snowplowanalytics.snowplow/tp2/ with the payload in the body of the request. Example of the payload is shown below.

{
    "schema": "iglu:com.algebraai.gametuner.common/payload_data/jsonschema/1-0-0",
    "data": [
       {
        "e":"ue",
        "ue_pr":"{\"schema\":\"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0\",\"data\":{\"schema\":\"iglu:com.algebraai.gametuner.event/new_user/jsonschema/1-0-0\",\"data\":null}}",
        "eid":"00000000-0000-0000-0000-000000000000",
        "dtm":"1673451491326",
        "stm":"1673451492032",
        "p":"android",
        "aid":"demoapp",
        "tna":"Gametuner.Unity",
        "tv":"postman-0.0.00",
        "uid":"user_id",
        "iid":"installation_id",
        "ak":"api_key",
        "sm":"1",
        "co":"{\"schema\":\"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-1\",\"data\":[{\"schema\":\"iglu:com.algebraai.gametuner.context/event_context/jsonschema/1-0-0\",\"data\":{\"event_index\":0,\"previous_event\":\"None\",\"sandbox_mode\":true,\"event_bundle_id\":0,\"is_online\":true}},{\"schema\":\"iglu:com.algebraai.gametuner.embedded_context/session_context/jsonschema/1-0-0\",\"data\":{\"session_id\":\"cea50377-fe8f-4563-a263-274a43e0c7bd\",\"session_index\":1,\"session_time\":0.0}},{\"schema\":\"iglu:com.algebraai.gametuner.embedded_context/device_context/jsonschema/1-0-0\",\"data\":{\"advertising_id\":\"b0993057-edb6-480c-baa7-5a9396bf324d\",\"build_version\":\"1.000.00\",\"cpu_type\":\"ARM64\",\"device_category\":\"mobile\",\"device_id\":\"00000000000000000\",\"device_language\":\"en\",\"device_manufacturer\":\"Apple\",\"model\":\"13\",\"device_timezone\":\"+00:00\",\"gpu\":\"Apple GPU\",\"is_hacked\":\"Sandboxed\",\"os_version\":\"IOS 14.5.1\",\"ram_size\":7461,\"screen_resolution\":\"1080x2400\"}}]}"
        }
    ]
}

Deploy on GCP

For deploying the application on GCP, you should first build the application by running google cloud build gcloud builds submit --config=cloudbuild.yaml .. Script submits docker image to GCP artifact registry. Once the image is submitted, you should deploy the application on GCP. You can do that by running terraform script in GameTuner terraform project.

Licence

This project is fork of Snowplow Scala Stream Collector version 2.7.0, that is licenced under Apache 2.0 Licence.

The GameTuner Scala Stream Collector is copyright 2022-2024 AlgebraAI.

GameTuner Scala Stream Collector is released under the Apache 2.0 License.

collector's People

Contributors

djordjealgebra avatar

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.