前回、こちらの記事でTanzu Java Web Appのデプロイまでは実施した。
今回の記事はその続きとして、デプロイしたアプリの状態をApplication Live Viewという機能でTAPのGUIから見てみる。
公式ドキュメント的にはカタログの利用はこの辺りで、可視化周りはこの辺りとなる。
Application Live Viewとは
Application Live ViewとはアプリケーションのワークロードをGUI上で表示してくれる。
対応しているのがSpring Boot、Spring Cloud Gateway、Steeltoeと限られているのは残念だが、これらのアプリケーションであればユーザ側で何か作り込みをしなくても、様々なメトリクスなどを見ることが出来る。
Application Live Viewを試す
ここからはこちらの記事の続きとなるため、TAP構築後にTanzu Java Web Appがデプロイされていることを前提とする。
カタログへの登録
ワークロードの可視化を行うにあたり、アプリのカタログを登録する。
カタログはApplication Acceleratorからアプリの雛形を入手した場合、catalog/catalog-info.yaml
に格納されている。
カタログの登録前にGitリポジトリ(ここではGitea)を連携させる必要がある。
連携しない場合、Tanzu Developer Portalでカタログを利用しようとすると、以下のエラーが出て先に進めない。
{"error":{"name":"InputError","message":"Error: Unable to read url, NotAllowedError: Reading from 'https://gitea.10.220.157.170.sslip.io/bn_user/tanzu-java-web-app/src/branch/main/catalog/catalog-info.yaml' is not allowed. You may need to configure an integration for the target host, or add it to the configured list of allowed hosts at 'backend.reading.allow'"},"request":{"method":"POST","url":"/locations?dryRun=true"},"response":{"statusCode":400}}
そのため、こちらを参考にtap-values.yamlを編集してGitのドメインを設定して連携させる。なお、証明書もないとエラーが出るのでGiteaの証明書も合わせて追加で設定する。
GiteaをHelmでインストールしている場合、以下で取得できる。
kubectl get secret -n gitea gitea.10.220.157.170.sslip.io-tls -o jsonpath={.data."ca\.crt"} | base64 -d
tap-values.yamlを以下のように編集する。
なお、ドキュメントにAcceleratorsのページが壊れるからacc-server.accelerator-system.svc.cluster.local
を書くようなWorkaroundが書かれていたので、こちらも素直に従って記載する。
--- tap-values.yaml.noapp-config 2023-09-14 09:23:39.769145132 +0000
+++ tap-values.yaml 2023-09-14 09:55:23.080883110 +0000
@@ -55,8 +55,32 @@
type: LoadBalancer
tap_gui:
+ ca_cert_data: |
+ -----BEGIN CERTIFICATE-----
+ MIIDETCCAfmgAwIBAgIQKjFwuHR53a5LTIYtjsU7mDANBgkqhkiG9w0BAQsFADAT
+ :(省略)
+ biMGOi7AV0sO3nT0/hhHcOg8UrfQ
+ -----END CERTIFICATE-----
metadataStoreAutoconfiguration: true
app_config:
+ backend:
+ reading:
+ allow:
+ - host: 'gitea.10.220.157.170.sslip.io'
+ - host: acc-server.accelerator-system.svc.cluster.local
auth:
allowGuestAccess: true
設定を反映する。
tanzu package installed update tap --values-file tap-values.yaml -n tap-install
HomeからREGISTER ENTITY
をクリックする。
Repository URLにはTanzu Java Web Appのcatalog-info.yamlのRawでのパス(例:https://gitea.10.220.157.170.sslip.io/bn_user/tanzu-java-web-app/raw/branch/main/catalog/catalog-info.yaml)を設定する。
ANALYZE
をクリックし、IMPORT
をクリックする。
Homeに戻ると、tanzu-java-web-app
が追加されていることが分かる。
ワークロードの可視化
Tanzu Java Web AppはKnativeで動くため、ワークロードを発生させるために定期的にアクセスしておく。
watch -n 5 curl https://tanzu-java-web-app.tap-demo.tap.10.220.157.170.sslip.io -k
この状態で、先程のHomeからtanzu-java-web-app
をクリックし、Runtime Resources
をクリックすると、アプリのKubernetesリソースが表示される。
Kind
がPod
のものをクリックすると、このような画面となる。
VIEW POD LOGS
からPodのログが、VIEW .YAML
からYAMLが確認できる。ログをkubectlなしで見れるのは開発者にとっては嬉しい機能だと思う。
下のLive View
に行って、Memoryを選択すると、CPU・メモリの使用量も表示される。
ガベージコレクションに関する情報も表示できる。
表示可能な項目は以下となっている。
- Details
- Health
- Environment
- Log Levels
- Threads
- Memory
- Request Mappings
- HTTP Exchanges
- Caches
- Configuration Properties
- Conditions
- Scheduled Tasks
- Beans
- Metrics
- Actuator
特別な作り込みをせずにこのような各種情報が取れるのはありがたく、Developerの学習コストも不要という点もDeveloperにはオススメしやすそうだ。