This is an automated email from the ASF dual-hosted git repository.

dblevins pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee.git


The following commit(s) were added to refs/heads/master by this push:
     new ab494d6  add translate in PT to mp-custom-healthcheck
     new e7e8a6e  Merge pull request #564 from 
robinsonvs/mp-custom-healthcheck-portuguese
ab494d6 is described below

commit ab494d6de25b47c7d7d015e1f7d7243839b9b579
Author: Robinson Severo <[email protected]>
AuthorDate: Mon Sep 9 10:11:18 2019 -0300

    add translate in PT to mp-custom-healthcheck
---
 examples/mp-custom-healthcheck/README_pt.adoc | 166 ++++++++++++++++++++++++++
 1 file changed, 166 insertions(+)

diff --git a/examples/mp-custom-healthcheck/README_pt.adoc 
b/examples/mp-custom-healthcheck/README_pt.adoc
new file mode 100644
index 0000000..576fd19
--- /dev/null
+++ b/examples/mp-custom-healthcheck/README_pt.adoc
@@ -0,0 +1,166 @@
+= MicroProfile Custom Health Check
+:index-group: MicroProfile
+:jbake-type: page
+:jbake-status: published
+
+Este é um exemplo de como usar MicroProfile Custom Health Check em TomEE.
+
+[discrete]
+==== Health Feature
+
+Os links de status (Health checks) são usados para verificar os estados dos 
serviços e recursos que uma aplicação depende ou mesmo expor seus
+status. Por exemplo, em um ambiente de cluster, onde um nó não íntegro precisa 
ser descartado (terminated, shutdown) e eventualmente
+substituído por outra instância íntegra.
+
+Por padrão, 
https://github.com/eclipse/microprofile-health[microprofile-health-api] 
proporciona a saida básica de um nó simplesmente
+acessando o endpoint http://host:port/health.
+
+[source,json]
+----
+{"checks":[],"outcome":"UP","status":"UP"}
+----
+
+Para fornecer uma saída personalizada, digamos que temos uma API do tempo, e 
se o serviço se tornar indisponível, 
+devemos relatar o serviço como inativo (DOWN).
+
+Para iniciar com uma saída personalizada, é necessário implementar a interface 
https://github.com/eclipse/microprofile-health/blob/master/api/src/main/java/org/eclipse/microprofile/health/HealthCheck.java[HealthCheck],
+transforme a classe em um bean gerenciado anotando-a com `@ApplicationScoped` 
e `@Health` para ativar a verificação personalizada.
+Veja mais detalhes aqui 
https://github.com/apache/geronimo-health/blob/master/geronimo-health/src/main/java/org/apache/geronimo/microprofile/impl/health/cdi/GeronimoHealthExtension.java[GeronimoHealthExtension.java]
+
+[source,java]
+----
+@Health
+@ApplicationScoped
+public class WeatherServiceHealthCheck implements HealthCheck {
+
+    @Inject WeatherGateway weatherGateway;
+
+    @Override
+    public HealthCheckResponse call() {
+        HealthCheckResponseBuilder responseBuilder = 
HealthCheckResponse.named("OpenWeatherMap");
+        try {
+            WeatherApiStatus status = weatherGateway.getApiStatus();
+            return responseBuilder.withData("weatherServiceApiUrl", 
status.getUrl())
+                    .withData("weatherServiceApiVersion", status.getVersion())
+                    .withData("weatherServiceMessage", status.getMessage())
+                    .up().build();
+        } catch (WeatherException e) {
+            return responseBuilder.withData("weatherServiceErrorMessage", 
e.getMessage()).down().build();
+        }
+    }
+}
+----
+
+No exemplo acima, o link de status é 
https://openweathermap.org/appid[OpenWeatherMap] (_somente ilustrativo_) que 
fornece uma
+plano de assinatura para acessar seus serviços e, se o limite de chamadas for 
excedido, a API ficará indisponível até sua 
+renovação.
+
+[discrete]
+=== Exemplos
+
+.Executando o aplicativo
+----
+    mvn clean install tomee:run
+----
+
+[discrete]
+==== Exemplo 1
+
+Quando acessado o endpoint /health, OpenWeatherMap nos diz que nossas chamadas 
restantes estão acabando e que devemos tomar
+uma ação antes que fique indisponível.
+
+----
+curl http://localhost:8080/mp-custom-healthcheck/health
+----
+
+[source,json]
+----
+{
+   "checks":[
+      {
+         "data":{
+            "weatherServiceApiVersion":"2.5",
+            "weatherServiceMessage":"Your account will become unavailable soon 
due to limitation of your
+                                    subscription type. Remaining API calls are 
1",
+            "weatherServiceApiUrl":"http://api.openweathermap.org/data/2.5/";
+         },
+         "name":"OpenWeatherMap",
+         "state":"UP"
+      }
+   ],
+   "outcome":"UP",
+   "status":"UP"
+}
+----
+
+[discrete]
+==== Exemplo 2
+
+A API do tempo ainda está funcionando bem.
+
+----
+curl http://localhost:8080/mp-custom-healthcheck/weather/day/status
+----
+
+[source,text]
+----
+Hi, today is a sunny day!
+----
+
+[discrete]
+==== Exemplo 3
+
+Quando acessamos novamente o endpoint /health, OpenWeatherMap nos diz que 
nossa conta está temporariamente bloqueada e esse
+serviço é relatado como inativo (DOWN).
+
+----
+curl http://localhost:8080/mp-custom-healthcheck/health
+----
+
+[source,json]
+----
+{
+   "checks":[
+      {
+         "data":{
+            "weatherServiceErrorMessage":"Your account is temporary blocked 
due to exceeding of
+            requests limitation of your subscription type. Please choose the 
proper subscription
+            http://openweathermap.org/price";
+         },
+         "name":"weatherservice",
+         "state":"DOWN"
+      }
+   ],
+   "outcome":"DOWN",
+   "status":"DOWN"
+}
+----
+
+[discrete]
+==== Exemplo 4
+
+A API do tempo parou.
+
+----
+curl http://localhost:8080/mp-custom-healthcheck/weather/day/status
+----
+
+[source,text]
+----
+Weather Service is unavailable at moment, retry later.
+----
+
+[discrete]
+===== Executando os testes
+
+Você pode também testar usando 
link:src/test/java/org/superbiz/rest/WeatherServiceTest.java[WeatherServiceTest.java]
 disponível no projeto.
+
+----
+mvn clean test
+----
+
+----
+[INFO] Results:
+[INFO]
+[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped:
+----

Reply via email to