App Management
Once you have a data app deployed, there are a few commands you will want to keep in mind when managing streaming apps in Meroxa going forward.
Describe Applications
Use the meroxa apps describe
for high-level information about a data app.
meroxa apps describe appname
The Meroxa CLI will print the following details:
$ meroxa apps describe liveapp
UUID: ab011c9d-a5bc-1234-ab01-12ab34c8def5
Name: liveapp
Language: javascript
Git SHA: ad7230a317eb4738f9742b830665860d39f87a0a
Created At: 2022-01-01 22:22:22 +0000 UTC
Updated At: 2022-01-01 22:22:22 +0000 UTC
State: running
Resources
pgdb (jdbc-destination)
UUID: 12c2e8be-523c-477b-b4b5-2d25f6d05e8a
Type: postgres
State: running
pgdb (debezium-pg-source)
UUID: 12c218be-523c-477b-b4b5-2d25f6d05e8a
Type: postgres
State: running
Functions
anonymize-ad7230a3
UUID: 8f7179ab-c036-4877-ba50-6764ed88ca34
State: running
✨ To view your application, visit https://dashboard.meroxa.io/apps/liveapp/detail
Open Applications
Below are a few different ways to open a browser and view a details page in the Meroxa Dashboard for any deployed Turbine Data Application. This behavior is consistent with all other meroxa apps
commands.
Use the meroxa apps open#
command with the Turbine Data Application name or UUID:
meroxa apps open liveapp
meroxa apps open ab011c9d-a5bc-1234-ab01-12ab34c8def5
Use the meroxa apps open
command in the local root directory of the Turbine Data Application:
meroxa apps open
Use the meroxa apps open
command with --path
containing a value that is a local path to the root directory of the Turbine Data Application:
meroxa apps open --path /local/path/to/liveapp
Or if it's an immediate sub directory:
meroxa apps open --path liveapp
To learn more about the Turbine Data Application details page, see our App Visualization documentation.
Application logs
Use the meroxa apps logs
to view relevant logs to the state of the given Turbine Data Application.
meroxa apps logs appname
The Meroxa CLI will print the following logs:
$ meroxa apps logs liveapp
function-960959 (function)
[2022-04-19T05:35:51Z] Received key:"{\"schema\":{\"type\":\"int32\",\"optional\":false},\"payload\":3}" value:"{\"payload\":{\"id\":3},\"schema\":{\"fields\":[{\"field\":\"id\",\"optional\":false,\"type\":\"int32\"}],\"name\":\"account\",\"optional\":false,\"type\":\"struct\"}}" timestamp:1658430032
[2022-04-19T05:35:51Z] Received key:"{\"schema\":{\"type\":\"int32\",\"optional\":false},\"payload\":4}" value:"{\"payload\":{\"id\":4},\"schema\":{\"fields\":[{\"field\":\"id\",\"optional\":false,\"type\":\"int32\"}],\"name\":\"account\",\"optional\":false,\"type\":\"struct\"}}" timestamp:1658430032
[2022-04-19T05:35:51Z] Received key:"{\"schema\":{\"type\":\"int32\",\"optional\":false},\"payload\":5}" value:"{\"payload\":{\"id\":5},\"schema\":{\"fields\":[{\"field\":\"id\",\"optional\":false,\"type\":\"int32\"}],\"name\":\"account\",\"optional\":false,\"type\":\"struct\"}}" timestamp:1658430032
[2022-04-19T05:35:51Z] panic: interface conversion: interface {} is nil, not string
[2022-04-19T05:35:51Z]
[2022-04-19T05:35:51Z] goroutine 8 [running]:
[2022-04-19T05:35:51Z] main.Anonymize.Process({}, {0xc000208540, 0x1, 0x1})
[2022-04-19T05:35:51Z] /go/src/app/app.go:75 +0x214
[2022-04-19T05:35:51Z] github.com/meroxa/turbine-go/platform.wrapFrameworkFunc.func1({0x0, 0x0}, 0xc00024fb00)
[2022-04-19T05:35:51Z] /go/src/app/vendor/github.com/meroxa/turbine-go/platform/server.go:72 +0x2f
[2022-04-19T05:35:51Z] github.com/meroxa/turbine-go/platform.ProtoWrapper.Process({0x40ae05}, {0x9dc6e0, 0xc00001ec30}, 0x40d100)
[2022-04-19T05:35:51Z] /go/src/app/vendor/github.com/meroxa/turbine-go/platform/server.go:27 +0x2f
[2022-04-19T05:35:51Z] github.com/meroxa/funtime/proto._Function_Process_Handler({0x8c2d80, 0xc000119b30}, {0x9dc6e0, 0xc00001ec30}, 0xc0000686c0, 0x0)
[2022-04-19T05:35:51Z] /go/src/app/vendor/github.com/meroxa/funtime/proto/service.pb.go:364 +0x170
[2022-04-19T05:35:51Z] google.golang.org/grpc.(*Server).processUnaryRPC(0xc000193340, {0x9e51b8, 0xc000194180}, 0xc000228120, 0xc0001b6ba0, 0xd1dd70, 0x0)
[2022-04-19T05:35:51Z] /go/src/app/vendor/google.golang.org/grpc/server.go:1282 +0xccf
[2022-04-19T05:35:51Z] google.golang.org/grpc.(*Server).handleStream(0xc000193340, {0x9e51b8, 0xc000194180}, 0xc000228120, 0x0)
[2022-04-19T05:35:51Z] /go/src/app/vendor/google.golang.org/grpc/server.go:1616 +0xa2a
[2022-04-19T05:35:51Z] google.golang.org/grpc.(*Server).serveStreams.func1.2()
[2022-04-19T05:35:51Z] /go/src/app/vendor/google.golang.org/grpc/server.go:921 +0x98
[2022-04-19T05:35:51Z] created by google.golang.org/grpc.(*Server).serveStreams.func1
[2022-04-19T05:35:51Z] /go/src/app/vendor/google.golang.org/grpc/server.go:919 +0x294
...
List Applications
Using the Meroxa CLI
Use the meroxa apps list
command to list existing streaming apps on your account.
meroxa apps list
The Meroxa CLI will print the following list:
$ meroxa apps list
UUID NAME LANGUAGE GIT SHA STATE ENVIRONMENT
====================================== ================================= ============ ========================================== ========= =============
ab011c9d-a5bc-1234-ab01-12ab34c8def5 liveapp javascript a11564c80cb5098ed392771a64b97a3c91c4525c running common
cd123e4f-a1bc-0987-ef23-45fe67c8def9 fooapp python 49a0a34ea02414fcb2b63e7610e9f4280e774822 running common
✨ To view your applications, visit https://dashboard.meroxa.io/apps
Using the Meroxa Dashboard
As the Meroxa CLI printed message suggests, you may also access a list of your Turbine streaming apps in the Meroxa Dashboard.
Application States
Monitor the state of your existing streaming apps in the Meroxa Dashboard or the CLI using meroxa apps describe
.
The state itself is descriptive of whether your application is operational and in a healthy state. The states are as follows:
Deploying
The deploying
state indicates that your Turbine Data Application deployment is in progress. This can take a few minutes.
Pending
The pending
state indicates that your Turbine Data Application deployment is in progress. This can take a few minutes.
Running
The running
state indicates that your Turbine Data Application deployment was successful, is operational, and is in a healthy state.
Degraded
The degraded
state indicates that your Turbine Data Application is not currently operational, but may be fixed. This could be due to any number of issues, including a resource issue.
Failed
The failed
state indicates that your Turbine Data Application is no longer operational and is in a erroneous state that cannot be fixed without redeployment. This could be due to any number of issues, including a malfunction of your code or dependencies.
Remove Applications
You can remove a Turbine Data Application
- In preparation for a redeployment.
- Anytime you'd like to pause its data stream.
- When you'd like to remove an obsolete application from your account, for example if the application is degraded.
Removing your Turbine Data Application instance can be done through either the CLI or the Meroxa Dashboard.
Using the Meroxa CLI
To remove your Turbine Data Application from the command line, use the meroxa apps remove
command:
meroxa apps remove appname
The Meroxa CLI will print the following steps to confirm removal of the Turbine Data Application:
$ meroxa apps remove liveapp
To proceed, type "liveapp" or re-run this command with --force
▸ liveapp
Removing app "liveapp"...
App "liveapp" successfully removed
Using the Meroxa Dashboard
You can also remove an already existing Turbine Data Application instance from the Meroxa Dashboard in just a few clicks.
Visit the application overview, navigate to the app settings and the management sub section in order to delete your application:
Click Delete
and confirm your action by typing in the name of your Turbine Data Application:
Redeploy Application
Anytime an update to the logic of your Turbine Data Application is needed, you must remove, edit and redeploy it.
Once you have successfully removed your Turbine Data Application you can make changes to your Turbine Data Application code. Once you are satisfied with the changes, you can start the process of redeployment.
Commit the changes with Git:
$ git add .
$ git commit -m "Update resource configuration"
1 file changed, 1 insertion(+), 1 deletion(-)
Then redeploy using meroxa apps deploy
:
meroxa apps deploy
The Meroxa CLI will print out the steps taken and confirm once deployment is successful:
$ meroxa apps deploy
Validating your app.json...
✔ Checked your language is "javascript"
✔ Checked your application name is "liveapp"
Checking for uncommitted changes...
✔ No uncommitted changes!
Deploying application "liveapp"...
✔ Application built
✔ Can access your Turbine resources
✔ Application processes found. Creating application image...
✔ Platform source fetched
✔ Dockerfile created
✔ "turbine-liveapp.tar.gz" successfully created in "/Users/local/path/liveapp"
✔ Source uploaded
✔ Removed "turbine-liveapp.tar.gz"
✔ Dockerfile removed
✔ Successfully built process image ("UUID")
✔ Deploy complete
✔ Application "liveapp" successfully created!
✨ To view your application visit https://dashboard.meroxa.io/apps/liveapp/detail
Deploy & Redeploy Applications
See the Turbine Deployment documentation.