# How to implement it as a perspective ( Ignition-\> Status -\> Performance -\> Overview -\> Tags )

**URL:** <https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [May 9, 2023, 7:06am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452 "2023-05-09T07:06:37Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![jiyoung\_hwang1](https://avatars.discourse-cdn.com/v4/letter/j/bc79bd/32.png) [@jiyoung\_hwang1](https://forum.inductiveautomation.com/u/jiyoung_hwang1)\
**Post date:** [May 9, 2023, 7:06am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/1 "2023-05-09T07:06:37Z")

</div>

![1](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/e/6ee961712e55d290bba1de9377b24d22f4b3d1a7.gif)

The number of tegs used in the system is 737, how can I represent this from a perspective ?

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [May 9, 2023, 10:38am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/2 "2023-05-09T10:38:50Z")

</div>

The simplest way would simply be to use

```auto
len(system.tag.browse('[tagprovider]', filter = {'tagType': 'AtomicTag', 'recursive': True} ))

```

---

<div class="post-metadata">

**Author:** ![jiyoung\_hwang1](https://avatars.discourse-cdn.com/v4/letter/j/bc79bd/32.png) [@jiyoung\_hwang1](https://forum.inductiveautomation.com/u/jiyoung_hwang1)\
**Post date:** [May 10, 2023, 12:01am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/4 "2023-05-10T00:01:47Z")

</div>

I used the method you told me using the label in perfsepctive, but I get an error.

Can you tell me the solution?

 ![1](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/b/3b905f80ae2e8bbb39f52bb839df892e4aab10d1.png)

---

<div class="post-metadata">

**Author:** ![Ryan\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_allen/32/47013_2.png) [@Ryan\_Allen](https://forum.inductiveautomation.com/u/Ryan_Allen)\
**Post date:** [May 10, 2023, 12:08am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/5 "2023-05-10T00:08:14Z")

</div>

I believe you'll need to use an expression or property with a script transform to use that. Also, replace 'tagprovider' with your tag provider :). Probably 'default'

---

<div class="post-metadata">

**Author:** ![jiyoung\_hwang1](https://avatars.discourse-cdn.com/v4/letter/j/bc79bd/32.png) [@jiyoung\_hwang1](https://forum.inductiveautomation.com/u/jiyoung_hwang1)\
**Post date:** [May 10, 2023, 12:12am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/7 "2023-05-10T00:12:18Z")

</div>

![1](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/7/f7b2757cfc768844bd52fbec9454574be177fe3b.png)

An error occurs even though the change has been made.

---

<div class="post-metadata">

**Author:** ![Ryan\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_allen/32/47013_2.png) [@Ryan\_Allen](https://forum.inductiveautomation.com/u/Ryan_Allen)\
**Post date:** [May 10, 2023, 12:17am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/8 "2023-05-10T00:17:02Z")

</div>

Do now() for the expression, then put value = your script in a script transform

---

<div class="post-metadata">

**Author:** ![jiyoung\_hwang1](https://avatars.discourse-cdn.com/v4/letter/j/bc79bd/32.png) [@jiyoung\_hwang1](https://forum.inductiveautomation.com/u/jiyoung_hwang1)\
**Post date:** [May 10, 2023, 12:26am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/10 "2023-05-10T00:26:05Z")

</div>

![1](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/5/f57f3668c8a90bc22f3b013befe90b835130f0c7.gif)

Do you mean to do this?

If this is correct, the value is null.

---

<div class="post-metadata">

**Author:** ![Ryan\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_allen/32/47013_2.png) [@Ryan\_Allen](https://forum.inductiveautomation.com/u/Ryan_Allen)\
**Post date:** [May 10, 2023, 12:27am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/11 "2023-05-10T00:27:37Z")

</div>

Close. Put 'value =' to the left of the script you have. Then do 'return value'

---

<div class="post-metadata">

**Author:** ![jiyoung\_hwang1](https://avatars.discourse-cdn.com/v4/letter/j/bc79bd/32.png) [@jiyoung\_hwang1](https://forum.inductiveautomation.com/u/jiyoung_hwang1)\
**Post date:** [May 10, 2023, 12:52am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/13 "2023-05-10T00:52:44Z")

</div>

![2](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/3/434ea3b22c2418deffffda76c47b37705c90b3bc.gif)  
 ![1](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/8/48aa02e74dce95138a0ab4dd719f91c3265b3867.gif)

If you look at picture number 1, there are 300 tags

If you look at picture number 2, the number of tags is 265.

How can I get 300 tags?

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [May 10, 2023, 12:58am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/14 "2023-05-10T00:58:49Z")

</div>

> [@jiyoung\_hwang1](#):
>
> If you look at picture number 1, there are 300 tags

don't you mean 737?

Also, I would just put "1" into the expression rather than running `now()`. You just need it to run once, and rather than calling a function, just giving it a 1 will be more efficient, if only very slightly.

Filtering by 'tagType' = 'AtomicTag' will limit your results to only the 6 actual tag types and it will exclude folders and udt instances (it _will_ include udt instance atomic tags though).

Regarding why you're seeing a difference in count, that tag count might also include the tags from the `system` tag provider as well. If you want to include those, then you'll need to sum the results from your default tag provider and the results from the system tag provider.

Edit: however, it seems there's a bug when trying to recursively browse for tags in the `System` tag provider; it doesn't recursively browse...

> [@jiyoung\_hwang1](#):
>
> How can I get 300 tags?

Try removing the 'tagType' filter so you aren't filtering by this (you should be left with only `filter = {'recursive': True}` in the `filter`)

---

<div class="post-metadata">

**Author:** ![jiyoung\_hwang1](https://avatars.discourse-cdn.com/v4/letter/j/bc79bd/32.png) [@jiyoung\_hwang1](https://forum.inductiveautomation.com/u/jiyoung_hwang1)\
**Post date:** [May 10, 2023, 1:16am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/16 "2023-05-10T01:16:58Z")

</div>

Thank you so much!!!!!

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 10, 2023, 11:27am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/17 "2023-05-10T11:27:23Z")

</div>

> [@nminchin](#):
>
> Also, I would just put "1" into the expression rather than running `now()`

That will make it try to run every **millisecond**. So, no. Use zero. `now(0)` runs just once.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [May 10, 2023, 11:41am UTC](https://forum.inductiveautomation.com/t/how-to-implement-it-as-a-perspective-ignition-status-performance-overview-tags/73452/18 "2023-05-10T11:41:23Z")

</div>

No, I mean, just use literally `1` in the expression field, nothing else, no `now(0)`, no `now(1)`, just `1` (or `true`). I.e. something static. It probably makes _very_ little difference, but every difference counts 😉
