Skip to main content

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

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:

Meroxa Dashboard: App overview page to App settings Meroxa Dashboard: App settings management page

Click Delete and confirm your action by typing in the name of your Turbine Data Application:

Meroxa Dashboard: Confirmation dialog for deleting an 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.