go/svc/invoice: add statusz
diff --git a/go/svc/invoice/main.go b/go/svc/invoice/main.go
index 8a5ddbe..33bc125 100644
--- a/go/svc/invoice/main.go
+++ b/go/svc/invoice/main.go
@@ -111,45 +111,43 @@
 	}
 }
 
-func (s *service) RenderInvoice(req *pb.RenderInvoiceRequest, srv pb.Invoicer_RenderInvoiceServer) error {
-	sealed, err := s.m.getSealedUid(srv.Context(), req.Uid)
+func (s *service) invoicePDF(ctx context.Context, uid string) ([]byte, error) {
+	sealed, err := s.m.getSealedUid(ctx, uid)
 	if err != nil {
-		if _, ok := status.FromError(err); ok {
-			return err
-		}
-		glog.Errorf("getSealedUid(_, %q): %v", req.Uid, err)
-		return status.Error(codes.Unavailable, "internal server error")
+		return nil, err
 	}
 
 	var rendered []byte
 	if sealed != "" {
 		// Invoice is sealed, return stored PDF.
-		rendered, err = s.m.getRendered(srv.Context(), req.Uid)
+		rendered, err = s.m.getRendered(ctx, uid)
 		if err != nil {
-			if _, ok := status.FromError(err); ok {
-				return err
-			}
-			glog.Errorf("getRendered(_, %q): %v", req.Uid, err)
-			return status.Error(codes.Unavailable, "internal server error")
+			return nil, err
 		}
 	} else {
 		// Invoice is proforma, render.
-		invoice, err := s.m.getInvoice(srv.Context(), req.Uid)
+		invoice, err := s.m.getInvoice(ctx, uid)
 		if err != nil {
-			if _, ok := status.FromError(err); ok {
-				return err
-			}
-			glog.Errorf("getInvoice(_, %q): %v", req.Uid, err)
-			return status.Error(codes.Unavailable, "internal server error")
+			return nil, err
 		}
 
-		glog.Infof("%+v", invoice)
 		rendered, err = renderInvoicePDF(invoice, "xxxx", true)
 		if err != nil {
-			glog.Errorf("renderProformaPDF(_): %v", err)
-			return status.Error(codes.Unavailable, "internal server error")
+			return nil, err
 		}
 	}
+	return rendered, nil
+}
+
+func (s *service) RenderInvoice(req *pb.RenderInvoiceRequest, srv pb.Invoicer_RenderInvoiceServer) error {
+	rendered, err := s.invoicePDF(srv.Context(), req.Uid)
+	if err != nil {
+		if _, ok := status.FromError(err); ok {
+			return err
+		}
+		glog.Errorf("invoicePDF(_, %q): %v", req.Uid, err)
+		return status.Error(codes.Unavailable, "internal server error")
+	}
 
 	chunkSize := 16 * 1024
 	chunk := &pb.RenderInvoiceResponse{}
@@ -201,6 +199,7 @@
 	}
 
 	s := newService(m)
+	s.setupStatusz(mi)
 	pb.RegisterInvoicerServer(mi.GRPC(), s)
 
 	if err := mi.Serve(); err != nil {