Skip to content

Commit 50da101

Browse files
authored
feat: gotocompany migration (#1)
1 parent e4e5977 commit 50da101

File tree

379 files changed

+1880
-1927
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

379 files changed

+1880
-1927
lines changed

.github/ISSUE_TEMPLATE/config.yml

-8
This file was deleted.

.github/workflows/docs.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ jobs:
2222
run: cd docs && yarn build
2323
- name: Deploy docs
2424
env:
25-
GIT_USER: ravisuhag
25+
GIT_USER: anshuman-gojek
2626
GIT_PASS: ${{ secrets.DOCU_RS_TOKEN }}
2727
DEPLOYMENT_BRANCH: gh-pages
2828
CURRENT_BRANCH: master
2929
working-directory: docs
3030
run: |
31-
git config --global user.email "suhag.ravi@gmail.com"
32-
git config --global user.name "ravisuhag"
31+
git config --global user.email "anshuman.srivastava@gojek.com"
32+
git config --global user.name "anshuman-gojek"
3333
yarn deploy

.github/workflows/package.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,5 @@ jobs:
4545
context: .
4646
push: true
4747
tags: |
48-
odpf/firehose:latest
49-
odpf/firehose:${{ steps.get_version.outputs.version-without-v }}
48+
gotocompany/firehose:latest
49+
gotocompany/firehose:${{ steps.get_version.outputs.version-without-v }}

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ COPY --from=GRADLE_BUILD ./jolokia-jvm-agent.jar /opt/firehose
1010
COPY --from=GRADLE_BUILD ./src/main/resources/log4j.xml /opt/firehose/etc/log4j.xml
1111
COPY --from=GRADLE_BUILD ./src/main/resources/logback.xml /opt/firehose/etc/logback.xml
1212
WORKDIR /opt/firehose
13-
CMD ["java", "-cp", "bin/*:/work-dir/*", "io.odpf.firehose.launch.Main", "-server", "-Dlogback.configurationFile=etc/firehose/logback.xml", "-Xloggc:/var/log/firehose"]
13+
CMD ["java", "-cp", "bin/*:/work-dir/*", "com.gotocompany.firehose.launch.Main", "-server", "-Dlogback.configurationFile=etc/firehose/logback.xml", "-Xloggc:/var/log/firehose"]

README.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Firehose
22

3-
![build workflow](https://github.com/odpf/firehose/actions/workflows/build.yml/badge.svg)
4-
![package workflow](https://github.com/odpf/firehose/actions/workflows/package.yml/badge.svg)
3+
![build workflow](https://github.com/goto/firehose/actions/workflows/build.yml/badge.svg)
4+
![package workflow](https://github.com/goto/firehose/actions/workflows/package.yml/badge.svg)
55
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?logo=apache)](LICENSE)
6-
[![Version](https://img.shields.io/github/v/release/odpf/firehose?logo=semantic-release)](Version)
6+
[![Version](https://img.shields.io/github/v/release/goto/firehose?logo=semantic-release)](Version)
77

88
Firehose is a cloud native service for delivering real-time streaming data to destinations such as service endpoints (HTTP or GRPC) & managed databases (Postgres, InfluxDB, Redis, Elasticsearch, Prometheus and MongoDB). With Firehose, you don't need to write applications or manage resources. It can be scaled up to match the throughput of your data. If your data is present in Kafka, Firehose delivers it to the destination(SINK) that you specified.
99

@@ -47,28 +47,28 @@ Explore the following resources to get started with Firehose:
4747

4848
## Run with Docker
4949

50-
Use the docker hub to download firehose [docker image](https://hub.docker.com/r/odpf/firehose/). You need to have docker installed in your system.
50+
Use the docker hub to download firehose [docker image](https://hub.docker.com/r/gotocompany/firehose/). You need to have docker installed in your system.
5151

5252
```
5353
# Download docker image from docker hub
54-
$ docker pull odpf/firehose
54+
$ docker pull gotocompany/firehose
5555
5656
# Run the following docker command for a simple log sink.
57-
$ docker run -e SOURCE_KAFKA_BROKERS=127.0.0.1:6667 -e SOURCE_KAFKA_CONSUMER_GROUP_ID=kafka-consumer-group-id -e SOURCE_KAFKA_TOPIC=sample-topic -e SINK_TYPE=log -e SOURCE_KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET=latest -e INPUT_SCHEMA_PROTO_CLASS=com.github.firehose.sampleLogProto.SampleLogMessage -e SCHEMA_REGISTRY_STENCIL_ENABLE=true -e SCHEMA_REGISTRY_STENCIL_URLS=http://localhost:9000/artifactory/proto-descriptors/latest odpf/firehose:latest
57+
$ docker run -e SOURCE_KAFKA_BROKERS=127.0.0.1:6667 -e SOURCE_KAFKA_CONSUMER_GROUP_ID=kafka-consumer-group-id -e SOURCE_KAFKA_TOPIC=sample-topic -e SINK_TYPE=log -e SOURCE_KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET=latest -e INPUT_SCHEMA_PROTO_CLASS=com.github.firehose.sampleLogProto.SampleLogMessage -e SCHEMA_REGISTRY_STENCIL_ENABLE=true -e SCHEMA_REGISTRY_STENCIL_URLS=http://localhost:9000/artifactory/proto-descriptors/latest/gotocompany/firehose:latest
5858
```
5959

6060
**Note:** Make sure your protos (.jar file) are located in `work-dir`, this is required for Filter functionality to work.
6161

6262
## Run with Kubernetes
6363

64-
- Create a firehose deployment using the helm chart available [here](https://github.com/odpf/charts/tree/main/stable/firehose)
64+
- Create a firehose deployment using the helm chart available [here](https://github.com/goto/charts/tree/main/stable/firehose)
6565
- Deployment also includes telegraf container which pushes stats metrics
6666

6767
## Running locally
6868

6969
```sh
7070
# Clone the repo
71-
$ git clone https://github.com/odpf/firehose.git
71+
$ git clone https://github.com/goto/firehose.git
7272

7373
# Build the jar
7474
$ ./gradlew clean build
@@ -101,11 +101,11 @@ Development of Firehose happens in the open on GitHub, and we are grateful to th
101101

102102
Read our [contributing guide](docs/docs/contribute/contribution.md) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Firehose.
103103

104-
To help you get your feet wet and get you familiar with our contribution process, we have a list of [good first issues](https://github.com/odpf/firehose/labels/good%20first%20issue) that contain bugs which have a relatively limited scope. This is a great place to get started.
104+
To help you get your feet wet and get you familiar with our contribution process, we have a list of [good first issues](https://github.com/goto/firehose/labels/good%20first%20issue) that contain bugs which have a relatively limited scope. This is a great place to get started.
105105

106106
## Credits
107107

108-
This project exists thanks to all the [contributors](https://github.com/odpf/firehose/graphs/contributors).
108+
This project exists thanks to all the [contributors](https://github.com/goto/firehose/graphs/contributors).
109109

110110
## License
111111

build.gradle

+8-8
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ lombok {
3232
sha256 = ""
3333
}
3434

35-
group 'io.odpf'
36-
version '0.7.4'
35+
group 'com.gotocompany'
36+
version '0.8.0'
3737

3838
def projName = "firehose"
3939

@@ -54,7 +54,7 @@ private Properties loadEnv() {
5454
properties
5555
}
5656

57-
def mainClassName = "io.odpf.firehose.launch.Main"
57+
def mainClassName = "com.gotocompany.firehose.launch.Main"
5858

5959
dependencies {
6060
implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.1.0'
@@ -71,7 +71,7 @@ dependencies {
7171
implementation group: 'org.apache.commons', name: 'commons-jexl', version: '2.1'
7272
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.5'
7373
implementation group: 'com.google.code.gson', name: 'gson', version: '2.7'
74-
implementation group: 'io.odpf', name: 'stencil', version: '0.2.1' exclude group: 'org.slf4j'
74+
implementation group: 'com.gotocompany', name: 'stencil', version: '0.4.0' exclude group: 'org.slf4j'
7575
implementation group: 'software.amazon.awssdk', name: 's3', version: '2.17.129'
7676
implementation group: 'org.influxdb', name: 'influxdb-java', version: '2.5'
7777
implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.4.0'
@@ -101,7 +101,7 @@ dependencies {
101101
implementation 'com.google.cloud:google-cloud-storage:1.114.0'
102102
implementation 'com.google.cloud:google-cloud-bigquery:1.115.0'
103103
implementation 'org.apache.logging.log4j:log4j-core:2.17.1'
104-
implementation group: 'io.odpf', name: 'depot', version: '0.3.8'
104+
implementation group: 'com.gotocompany', name: 'depot', version: '0.4.0'
105105
implementation group: 'com.networknt', name: 'json-schema-validator', version: '1.0.59' exclude group: 'org.slf4j'
106106

107107
testImplementation group: 'junit', name: 'junit', version: '4.11'
@@ -146,7 +146,7 @@ test {
146146
events "passed", "skipped", "failed"
147147
}
148148
useJUnit {
149-
excludeCategories 'io.odpf.firehose.test.categories.IntegrationTest'
149+
excludeCategories 'com.gotocompany.firehose.test.categories.IntegrationTest'
150150
}
151151
doLast {
152152
delete "$projectDir/src/test/resources/__files"
@@ -158,7 +158,7 @@ clean {
158158
}
159159
jar {
160160
manifest {
161-
attributes 'Main-Class': 'io.odpf.firehose.launch.Main'
161+
attributes 'Main-Class': 'com.gotocompany.firehose.launch.Main'
162162
duplicatesStrategy = 'exclude'
163163
zip64 = true
164164
}
@@ -181,7 +181,7 @@ publishing {
181181
repositories {
182182
maven {
183183
name = "GitHubPackages"
184-
url = "https://maven.pkg.github.com/odpf/firehose"
184+
url = "https://maven.pkg.github.com/goto/firehose"
185185
credentials {
186186
username = System.getenv("GITHUB_ACTOR")
187187
password = System.getenv("GITHUB_TOKEN")

docs/docs/concepts/architecture.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ _**Sink**_
4040
- All the existing sink types follow the same contract/lifecycle defined in `AbstractSink.java`. It consists of two stages:
4141
- Prepare: Transformation over-filtered messages’ list to prepare the sink-specific insert/update client requests.
4242
- Execute: Requests created in the Prepare stage are executed at this step and a list of failed messages is returned \(if any\) for retry.
43-
- Underlying implementation of AbstractSink can use implementation present in [depot](https://github.com/odpf/depot).
43+
- Underlying implementation of AbstractSink can use implementation present in [depot](https://github.com/goto/depot).
4444
- If the batch has any failures, Firehose will retry to push the failed messages to the sink
4545

4646
_**SinkPool**_

docs/docs/concepts/monitoring.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ Lastly, set up Telegraf to send metrics to InfluxDB, following the corresponding
7171

7272
#### Firehose deployed on Kubernetes _\*\*_
7373

74-
1. Follow[ this guide](https://github.com/odpf/charts/tree/main/stable/firehose#readme) for deploying Firehose on a Kubernetes cluster using a Helm chart.
75-
2. Configure the following parameters in the default [values.yaml](https://github.com/odpf/charts/blob/main/stable/firehose/values.yaml) file and run -
74+
1. Follow[ this guide](https://github.com/goto/charts/tree/main/stable/firehose#readme) for deploying Firehose on a Kubernetes cluster using a Helm chart.
75+
2. Configure the following parameters in the default [values.yaml](https://github.com/goto/charts/blob/main/stable/firehose/values.yaml) file and run -
7676

7777
```text
78-
$ helm install my-release -f values.yaml odpf/firehose
78+
$ helm install my-release -f values.yaml goto/firehose
7979
```
8080

8181
| Key | Type | Default | Description |

docs/docs/concepts/overview.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ scale. This section explains the overall architecture of Firehose and describes
1010
## [Monitoring Firehose with exposed metrics](monitoring.md)
1111

1212
Always know what’s going on with your deployment with
13-
built-in [monitoring](https://github.com/odpf/firehose/blob/main/docs/assets/firehose-grafana-dashboard.json) of
13+
built-in [monitoring](https://github.com/goto/firehose/blob/main/docs/assets/firehose-grafana-dashboard.json) of
1414
throughput, response times, errors and more. This section contains guides, best practices and advises related to
1515
managing Firehose in production.
1616

docs/docs/contribute/contribution.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
The following is a set of guidelines for contributing to Firehose. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. Here are some important resources:
44

55
- The [Concepts](../guides/create_firehose.md) section will explain to you about Firehose architecture,
6-
- Our [roadmap](https://github.com/odpf/firehose/blob/main/docs/roadmap.md) is the 10k foot view of where we're going, and
7-
- Github [issues](https://github.com/odpf/firehose/issues) track the ongoing and reported issues.
6+
- Our [roadmap](https://github.com/goto/firehose/blob/main/docs/roadmap.md) is the 10k foot view of where we're going, and
7+
- Github [issues](https://github.com/goto/firehose/issues) track the ongoing and reported issues.
88

99
Development of Firehose happens in the open on GitHub, and we are grateful to the community for contributing bug fixes and improvements. Read below to learn how you can take part in improving Firehose.
1010

@@ -23,14 +23,14 @@ The following parts are open for contribution:
2323
- Provide suggestions to make the user experience better
2424
- Provide suggestions to Improve the documentation
2525

26-
To help you get your feet wet and get you familiar with our contribution process, we have a list of [good first issues](https://github.com/odpf/firehose/labels/good%20first%20issue) that contain bugs that have a relatively limited scope. This is a great place to get started.
26+
To help you get your feet wet and get you familiar with our contribution process, we have a list of [good first issues](https://github.com/goto/firehose/labels/good%20first%20issue) that contain bugs that have a relatively limited scope. This is a great place to get started.
2727

2828
## How can I contribute?
2929

3030
We use RFCs and GitHub issues to communicate ideas.
3131

3232
- You can report a bug or suggest a feature enhancement or can just ask questions. Reach out on Github discussions for this purpose.
33-
- You are also welcome to add a new common sink in [depot](https://github.com/odpf/depot), improve monitoring and logging and improve code quality.
33+
- You are also welcome to add a new common sink in [depot](https://github.com/goto/depot), improve monitoring and logging and improve code quality.
3434
- You can help with documenting new features or improve existing documentation.
3535
- You can also review and accept other contributions if you are a maintainer.
3636

@@ -53,4 +53,4 @@ Please follow these practices for your change to get merged fast and smoothly:
5353
- If you are introducing a completely new feature or making any major changes to an existing one, we recommend starting with an RFC and get consensus on the basic design first.
5454
- Make sure your local build is running with all the tests and checkstyle passing.
5555
- If your change is related to user-facing protocols/configurations, you need to make the corresponding change in the documentation as well.
56-
- Docs live in the code repo under [`docs`](https://github.com/odpf/firehose/tree/7d0df99962507e6ad2147837c4536f36d52d5a48/docs/docs/README.md) so that changes to that can be done in the same PR as changes to the code.
56+
- Docs live in the code repo under [`docs`](https://github.com/goto/firehose/tree/main/docs/docs/README.md) so that changes to that can be done in the same PR as changes to the code.

docs/docs/contribute/development.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Configuration parameter variables of each sink can be found in the [Configuratio
3939

4040
When `INPUT_SCHEMA_DATA_TYPE is set to protobuf`, firehose uses Stencil Server as its Schema Registry for hosting Protobuf descriptors. The environment variable `SCHEMA_REGISTRY_STENCIL_ENABLE` must be set to `true` . Stencil server URL must be specified in the variable `SCHEMA_REGISTRY_STENCIL_URLS` . The Proto Descriptor Set file of the Kafka messages must be uploaded to the Stencil server.
4141

42-
Refer [this guide](https://github.com/odpf/stencil/tree/master/server#readme) on how to set up and configure the Stencil server, and how to generate and upload Proto descriptor set file to the server.
42+
Refer [this guide](https://github.com/goto/stencil/tree/master/server#readme) on how to set up and configure the Stencil server, and how to generate and upload Proto descriptor set file to the server.
4343

4444
### Monitoring
4545

@@ -56,7 +56,7 @@ Firehose sends critical metrics via StatsD client. Refer the[ Monitoring](../con
5656

5757
```bash
5858
# Clone the repo
59-
$ git clone https://github.com/odpf/firehose.git
59+
$ git clone https://github.com/goto/firehose.git
6060

6161
# Build the jar
6262
$ ./gradlew clean build
@@ -72,7 +72,7 @@ Set the generic variables in the local.properties file.
7272
KAFKA_RECORD_PARSER_MODE = message
7373
SINK_TYPE = log
7474
INPUT_SCHEMA_DATA_TYPE=protobuf
75-
INPUT_SCHEMA_PROTO_CLASS = io.odpf.firehose.consumer.TestMessage
75+
INPUT_SCHEMA_PROTO_CLASS = com.gotocompany.firehose.consumer.TestMessage
7676
```
7777
Set the variables which specify the kafka server, topic name, and group-id of the kafka consumer - the standard values are used here.
7878
```text
@@ -82,7 +82,7 @@ SOURCE_KAFKA_CONSUMER_GROUP_ID = sample-group-id
8282
```
8383

8484
### Stencil Workaround
85-
Firehose uses [Stencil](https://github.com/odpf/stencil) as the schema-registry which enables dynamic proto schemas. For the sake of this
85+
Firehose uses [Stencil](https://github.com/goto/stencil) as the schema-registry which enables dynamic proto schemas. For the sake of this
8686
quick-setup guide, we can work our way around Stencil setup by setting up a simple local HTTP server which can provide the static descriptor for TestMessage schema.
8787

8888

docs/docs/guides/create_firehose.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ INPUT_SCHEMA_PROTO_CLASS=com.tests.TestMessage
2121
Sample output of a Firehose log sink:
2222

2323
```text
24-
2021-03-29T08:43:05,998Z [pool-2-thread-1] INFO i.o.firehose.Consumer- Execution successful for 1 records
25-
2021-03-29T08:43:06,246Z [pool-2-thread-1] INFO i.o.firehose.Consumer - Pulled 1 messages
26-
2021-03-29T08:43:06,246Z [pool-2-thread-1] INFO io.odpf.firehose.sink.log.LogSink -
24+
2021-03-29T08:43:05,998Z [pool-2-thread-1] INFO com.gotocompany.firehose.Consumer- Execution successful for 1 records
25+
2021-03-29T08:43:06,246Z [pool-2-thread-1] INFO com.gotocompany.firehose.Consumer - Pulled 1 messages
26+
2021-03-29T08:43:06,246Z [pool-2-thread-1] INFO com.gotocompany.firehose.sink.log.LogSink -
2727
================= DATA =======================
2828
sample_field: 81179979
2929
sample_field_2: 9897987987
@@ -133,11 +133,11 @@ _**Note:**_ [_**DATABASE**_](../sinks/influxdb-sink.md#sink_influx_db_name) _**a
133133
- For INPUT_SCHEMA_DATA_TYPE = protobuf, this sink will generate bigquery schema from protobuf message schema and update bigquery table with the latest generated schema.
134134
- The protobuf message of a `google.protobuf.Timestamp` field might be needed when table partitioning is enabled.
135135
- For INPUT_SCHEMA_DATA_TYPE = json, this sink will generate bigquery schema by infering incoming json. In future we will add support for json schema as well coming from stencil.
136-
- The timestamp column is needed incase of partition table. It can be generated at the time of ingestion by setting the config. Please refer to config `SINK_BIGQUERY_ADD_EVENT_TIMESTAMP_ENABLE` in [depot bigquery sink config section](https://github.com/odpf/depot/blob/main/docs/reference/configuration/bigquery-sink.md#sink_bigquery_add_event_timestamp_enable)
136+
- The timestamp column is needed incase of partition table. It can be generated at the time of ingestion by setting the config. Please refer to config `SINK_BIGQUERY_ADD_EVENT_TIMESTAMP_ENABLE` in [depot bigquery sink config section](https://github.com/goto/depot/blob/main/docs/reference/configuration/bigquery-sink.md#sink_bigquery_add_event_timestamp_enable)
137137
- Google cloud credential with some bigquery permission is required to run this sink.
138138

139139
## Create a Bigtable sink
140140

141-
- it requires the following environment [variables](https://github.com/odpf/depot/blob/main/docs/reference/configuration/bigtable.md) ,which are required by ODPF Depot library, to be set along with the generic firehose variables.
141+
- it requires the following environment [variables](https://github.com/goto/depot/blob/main/docs/reference/configuration/bigtable.md) ,which are required by Depot library, to be set along with the generic firehose variables.
142142

143143
If you'd like to connect to a sink which is not yet supported, you can create a new sink by following the [contribution guidelines](../contribute/contribution.md)

0 commit comments

Comments
 (0)